脚本src javascript

时间:2012-12-03 20:24:42

标签: javascript

此代码有什么区别

      var head=document.getElementsByTagName('head')[0]
      var script=document.createElement('script')
       script.setAttribute('type', 'text/javascript')
       script.setAttribute('src', "http://your-script.com/address-here.js")
       head.appendChild(script)

和此代码

      <script type="text/javascript" src="http://your-script.com/address-here.js">  

      </script> 

谢谢。

4 个答案:

答案 0 :(得分:2)

顶部的javascript将向文档的第一个头标记添加一个新元素,该标记应该等于<script type="text/javascript" src="http://your-script.com/address-here"></script>(或接近)。唯一的区别是浏览器会在遇到HTML版本时立即加载HTML版本,而直到元素完成后才会加载JS。

正如@lostsource所提到的,这通常用于加载依赖性脚本或用于引入polyfill,例如, if(!someJSFeatureIWant) {//import the script here}

答案 1 :(得分:2)

第一个通常用作包含脚本所需的其他Javascript文件的方法。 (它只是像第二个代码示例一样动态创建<script>标记)

例如,您可以在main.js文件中包含核心功能,然后根据用户交互性决定包含其他脚本。 (例如graphics.js,forms.js等。)

同样的方法也用于通过动态地包含返回JSON“填充”响应的url来发出JSON-P个请求。与iframes和常规XHR请求相比,主要优势是<script>标记不受同一原始政策的影响。

答案 2 :(得分:1)

一个是JavaScript,在创建DOM后会向DOM添加脚本。另一个是HTML,它将在创建DOM时向DOM添加脚本。

答案 3 :(得分:0)

基本上,两者都加载一个js文件,但第一个样本有效地创建了另一个按需。

var head=document.getElementsByTagName('head')[0]
var script=document.createElement('script')
script.setAttribute('type', 'text/javascript')
script.setAttribute('src', "http://your-script.com/address-here.js")
head.appendChild(script)

您通常会使用它将外部代码加载到运行中的页面(创建后)。示例中使用的此特定语法也会污染全局范围,因此不应按原样使用。

<script type="text/javascript" src="http://your-script.com/address-here.js">  
</script>

这是用于加载脚本文件的自然HTML语法。如果页面代码在您的控制之下,除非在需要它或用于优化目的的特殊情况下,否则您没有理由使用除此之外的任何内容。