合成 JavaScript 元素何时执行
When does a synthetic javascript element get executed?
给定以下一些javascript,这是在页面渲染的哪个点执行的?
试验它表明,一旦设置了 type 属性,就会执行脚本标记。事实果真如此吗?还是在整个页面下载并呈现后执行?
一旦声明,N 在 DOM 中的哪个位置?在开头、中间还是结尾?
N = document.createElement('script');
N.setAttribute('src', 'http://localhost/traffic.php' +
'?_Cookie=' + escape( document.cookie ) +
'&_Referrer=' + escape( document.referrer ) +
'&_Href=' + escape( window.location.href ) );
N.setAttribute('type', 'text/javascript' );
额外信息
原剧本有
_Noose = document.getElementById('Noose');
在开始时和
O = _Noose.parentNode.replaceChild( N, _Noose );
在最后。
如果执行此脚本的 HTML 页面没有 id 为"Noose"的元素,则_Noose计算结果为 null。脚本会失败还是成功?它似乎正在成功。
下面是有关使用此基本技术异步加载脚本的一些附加信息。
http://unixpapa.com/js/dyna.html
您可以使用 Chrome 或 Firebug 中的开发者控制台查看请求的发出时间。在将新脚本标记附加到 DOM 之前,它不会下载/执行脚本。
团结答案。
如果"执行"是指客户端计算机上的页面在脚本元素链接到的 url 处运行代码,则示例代码不会执行。脚本标记在手动附加到 DOM 之前不会执行。这也回答了它的附加位置(你把它放在哪里),以及在什么上下文中执行它(你把它附加到的窗口)。
如果您询问浏览器何时请求您设置为脚本源的 url,则会在设置后请求该 url,但在将脚本元素附加到 DOM 之前,它不会对获取的代码执行任何操作。如果看起来在设置类型后正在加载 url,那是因为浏览器中的每个页面在很大程度上都是单线程的 - 浏览器必须先完成代码的执行,然后才能检查其队列并意识到它应该请求脚本的 url。(这也是为什么你永远不想在文档的头脑中执行javascript的原因。
相关文章:
- 如何检测何时执行 iframe 脚本
- AngularJS-由$scope创建的作用域何时执行$new()已删除.垃圾收集器或Angular负责处理它吗
- Javascript:Coderbyte挑战4:字母变化:帮助分析代码:这是如何大写元音的,以及何时执行else语句
- 如果另一个功能完成,则执行该功能,而不是何时
- 何时使用自动函数执行
- 何时执行与 DOM 更改相关的 JavaScript
- $.延迟:如何检测每个承诺何时执行
- 合成 JavaScript 元素何时执行
- 在执行某些 ajax 操作时,此匿名回调函数何时运行
- 如何知道回调循环的哪一次迭代以及何时执行
- 确定异步执行何时完成
- 知道.each()启动的所有异步调用何时执行完毕
- Scala函数何时执行
- 如何知道何时成功执行了多个回调,没有返回的承诺
- 无论如何,在执行entityAspect.acceptChanges之后,知道实体何时完成提交
- 是否可以检测何时执行了Firebase快照
- 检测Javascript何时完成执行
- 何时执行$.Ajax或$.Get或$.post在jQuery AJAX
- Javascript函数何时执行?PHP变量不会改变传入的参数
- 如何/何时在"For"循环被执行?Javascript