栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

浏览器何时执行Javascript?执行光标如何移动?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浏览器何时执行Javascript?执行光标如何移动?

答案取决于script标记的位置以及添加方式:

  1. 与标记内联的脚本标签与浏览器对该标记的处理同步执行(请参阅#2除外),因此,例如,如果这些标签引用外部文件,则它们会减慢页面的处理速度。(这样浏览器可以处理

    document.write
    语句,这些语句可以更改正在处理的标记。)

  2. defer
    在某些浏览器中,只有在完全呈现DOM之后,才会执行具有属性的脚本标签。这些自然无法使用
    document.write
    。(类似地,有一个
    async
    使脚本异步的属性,但是我对其了解不多,也不了解它的支持程度;细节)。

  3. 在DOM加载(通过

    innerHTML
    和类似)之后分配给元素的内容中的脚本标签根本不会执行,除非您使用jQuery或Prototype之类的库来帮您做。 (除了Andy E指出的一个例外:在IE上,如果它们具有
    defer
    属性,它将执行它们。在其他浏览器中不起作用。)

  4. 如果您通过将实际

    script
    元素添加到文档中
    Element#appendChild
    ,浏览器将立即开始下载该脚本,并在下载完成后立即执行该脚本。以这种方式添加的脚本不能同步执行,也不必按顺序执行。首先附加一个
    <script type="text/javascript" src="MyFct.js"></script>
    ,然后附加
    <script type="text/javascript">myFunction();</script>
    可以很好地在远程(第一个)之前执行内联(第二个)。如果发生这种情况并
    MyFct.js
    声明
    myFunction()
    ,则当我们尝试将其与内联脚本一起使用时将不会对其进行定义。如果您需要按顺序完成工作,则可以通过观看所添加元素上的
    load
    readyStateChange
    事件
    script
    load
    大多数浏览器中的事件,
    readyStateChange
    在某些版本的IE中,某些浏览器会同时使用这两种方法,因此您必须处理同一脚本的多个通知)。

  5. <a href='#' onclick='myNiftyJavascript();'>
    当相关事件发生时,将在属性()而非脚本标记中的事件处理程序中执行脚本。


我在我的真正的工作在外打工,突然我的后脑说:“你知道,你一直在 ,如果你将它们分配给它们不会被执行

innerHTML
,但你有没有亲自检查?”
而且我没有,所以我做到了-FWIW:

<!DOCTYPE HTML><html><head><meta http-equiv="Content-type" content="text/html;charset=UTF-8"><title>script Test Page</title><style type='text/css'>body {    font-family: sans-serif;}</style><script type='text/javascript'>function addscript(){    var str, div;    div = document.getElementById('target');    str = "Content added<" + "script type='text/javascript'>alert('hi there')<" + "/" + "script>";    alert("about to add:" + str);    div.innerHTML = str;    alert("Done adding script");}</script></head><body><div><input type='button' value='Go' onclick='addscript();'><div id='target'></div></div></body></html>

脚本的警报没有出现在IE7,FF3.6或Chrome4上(我没有费心检查其他对象,我的意思是::))。如果追加要素如图所示,而在这里,脚本被执行。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号