什么脚本标签与src和内容是什么意思?

Googlesearch+1button示例:

<script type="text/javascript" src="https://apis.google.com/js/plusone.js"> {"parsetags": "explicit"} </script> 

脚本标签有一个src-Attribute 内容。 这是什么意思,它是如何工作的?

不同的浏览器对待这个不同。 有些内容只有在src包含没有错误的情况下才会运行。 一些尝试包括src脚本后运行它,无论成功。 由于这种行为是不可靠的( 在HTML5中被禁止 ),所以应该避免。

Google不依赖于任何特定的行为。 由于内容只是一个对象字面值(一个值),执行它实际上不会做任何事情,除非导致无声的错误。 Google的代码会查看script标记本身的内容,并基于此来调整其行为。

如果脚本元素具有src属性,则内容必须被忽略,任何其他行为都不符合。

在博客中(作为黑客),已经build议将元素中的内容知道它不会被评估,然后使用DOM方法将内容作为string获取,或者将其评估或插入到新的脚本元素中。 这些都不是一个好主意。

根据HTML5草案规范 ,带有src属性的<script>元素应该只有注释掉的代码,这是为了给脚本提供文档。 尽pipeGoogle似乎并不符合这个规范。

在脚本加载后,它会在自己的脚本标签内部查看其内容。

它会使用一些类似这样的代码:

 var scripts = document.getElementsByTagName("script"); var data = eval(scripts[scripts.length - 1].innerHTML); 

由John Resig提供 。