ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 为什么JS脚本放在并执行之后?

2019-09-02 12:44:49  阅读:215  来源: 互联网

标签:behavior html javascript execution


我正在研究PHP中的一些东西,我想要包含一个文件并在最后插入一些内容.不考虑它,我做了include,然后回显了我想要插入的材料,这是一个JS脚本.

当我查看输出时,我意识到我已经忘记了包含文件中的标签.脚本插在他们之后,但令人惊讶的是(至少对我而言)它被执行了.

如果在执行此操作之前,如果脚本和标签之后的脚本执行了,我是否曾经问过我,我会说“我不这么认为.”我会说我认为它不会执行,因为我已经假定,到目前为止,浏览器会忽略和标记之后的任何内容.

所以,如果你问过,我会给出答案,我会错的.

在和标签之后放置的脚本会执行 – 为什么?

我用FF 3.6.24和I.E 8.0.7601.17514尝试了它,两者的行为相同.

显示和标签后面的任何文字 – 为什么?

有没有人对此有任何想法?而且,这是我可能依赖的东西吗?如果是这样,我可以在这里和那里简化一些处理.

这是我用http://www.bobnovell.com/PastHtmlEndTesting.shtml播放的页面 – 如果您的特定浏览器没有执行脚本和/或显示我在脚本之后放置的文本,请告诉我.

短发

解决方法:

这是HTML5中明确指定的行为,虽然它将由HTML5验证器标记.

after after body插入模式定义了< / html>之后的内容会发生什么.标签.处理此案例的规则是:

Anything else

↪ Parse error. Switch the insertion mode to 07001 and reprocess the token.

所以从技术上讲,它是一个解析错误,但是具有明确定义的行为. < script>解析并执行元素就像它出现在正文中一样,元素应该出现在正文的DOM中.

大多数浏览器不会将“解析错误”视为致命错误. HTML 5 spec解释说:

Certain points in the parsing algorithm are said to be parse errors. The error handling for parse errors is well-defined: user agents must either act as described below when encountering such problems, or must abort processing at the first error that they encounter for which they do not wish to apply the rules described below.

标签:behavior,html,javascript,execution
来源: https://codeday.me/bug/20190902/1791233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有