`
zhangyaochun
  • 浏览: 2652391 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关于动态修改script标签的src的值引发的一些思考

阅读更多

前言

 

最近在逛各家UED博客的时候,在w3ctech上看到的这个Topic的文章,个人感觉还是不错的,决定转换为自己的实践知识

 

正文

 

首先我这边先抛出几个结论性的东东

 

    来自w3c的HTML4标准

 

  • 如果src属性没有被设置,就执行script标签内的脚本内容;如果src有一个URL的值,则忽略script标签的脚本内容,而是去请求指定的URL的内容
  
    来自w3c的HTML5标准

  • 动态地修改src、type、charset、async和defer属性没有直接的效果,这些属性在特定的时候使用

下面我们从几种常见出发结合上面的结论

1、script标签没有指定src的值


<script id="test" type="text/javascript">
</script>
<script type="text/javasript">
    document.getElementById("test").src = "*****";
</script>
 
浏览器反应
  • Chrome |  FF  没有请求新的URL
  • IE9 请求新的URL 但是没有执行对应URL的脚本
  • IE6-8 请求并执行对应URL的脚本
  注意一下第一个script标签内部其实是有内容的,有一个回车的符号  

  所以测试改为下面这样:


<script id="test" type="text/javascript">
  alert("内部脚本");
</script>
<script type="text/javasript">
    document.getElementById("test").src = "*****";
</script>
 
浏览器反应
  • Chrome |  FF 会执行内部的那个alert脚本,但是没有请求新的URL
  • IE9 会执行内部的那个alert脚本,并请求新的URL,但不执行里面的脚本
  • IE6-8 会执行内部的那个alert脚本,并请求新的URL和执行里面的脚本
   所以这个是符合第一个HTML4的那个结论的前半部分


  再改一下:

   Tip:一般很少人会同时指定src又在script标签内部写脚本,这边只是测试用

<script id="test" type="text/javascript" src="*****">
  alert("内部脚本");
</script>
<script type="text/javasript">
    document.getElementById("test").src = "*****";
</script>
 
浏览器反应
  • Chrome |  FF 不会执行内部的那个alert脚本,而是执行对应开始设置的URL的脚本,但是没有请求新的URL
  • IE9  不会执行内部的那个alert脚本,而是执行对应开始设置的URL的脚本,并请求新的URL,但不执行里面的脚本
  • IE6-8  不会执行内部的那个alert脚本,而是执行对应开始设置的URL的脚本,并请求新的URL和执行里面的脚本
  所以这个是符合第一个HTML4的那个结论的后半部分



部分内容来源于:

 

分享到:
评论

相关推荐

    动态给head添加script

    在网页开发中,有时我们需要在页面加载过程中动态地向`&lt;head&gt;`标签内添加`&lt;script&gt;`元素,以便实现异步加载脚本、延迟加载或按需加载等功能。这种技术对于优化网页性能、减少首屏加载时间以及提高用户体验至关重要。...

    MyBatis拦截器分页与动态修改SQL及其参数值

    在"MyBatis拦截器分页与动态修改SQL及其参数值"的主题中,我们可以深入理解以下几个关键知识点: 1. **MyBatis拦截器**:MyBatis提供了一种插件机制,即拦截器(Interceptor),它基于Java的动态代理,可以在SQL...

    jQuery修改标签内容实例

    &lt;script src="jquery-1.8.3.min.js"&gt;&lt;/script&gt; ``` 一旦引入了jQuery,我们就可以使用其丰富的API来操作DOM。下面我们将逐一讲解如何修改四种标签的内容: 1. **修改超链接`&lt;a&gt;`标签内容**: 要修改超链接的文本...

    动态加载script文件的两种方法

    动态加载JavaScript文件是Web开发中常见的一种技术,它允许网页在...通过Ajax和动态创建`&lt;script&gt;`标签,开发者可以根据项目需求选择合适的方法。同时,注意安全性和兼容性问题,以及处理脚本加载完成后的回调逻辑。

    关于vue v-for循环解决img标签的src动态绑定问题

    在动态绑定标签的src属性时,通常会遇到路径和上下文环境的问题。这主要是因为浏览器在加载图片时,需要根据当前页面的相对路径或者绝对路径来寻找资源。如果路径设置错误,浏览器无法找到资源,就会导致图片无法...

    解决vue2.0动态绑定图片src属性值初始化时报错的问题

    解决Vue2.0动态绑定图片src属性值初始化时报错的问题 标题:解决Vue2.0动态绑定图片src属性值初始化时报错的问题 本文将讨论 Vue 2.0 中动态绑定图片 src 属性值初始化时出现的错误问题,并提供解决方案。 描述:...

    Spring @Scheduled定时任务动态修改cron参数

    当然,这种方法需要处理一些边界情况,比如并发修改和错误处理。在实际应用中,可能还需要使用线程安全的方式来存储和更新cron表达式,以及确保任务的幂等性,以防止同一任务被多次执行。 总的来说,Spring的`@...

    Jquery修改image的src属性,图片不加载问题的解决方法

    标签“Jquery image src”指的是使用Jquery操作image元素的src属性,这是Jquery中经常使用的操作之一,用于动态地更改网页上的图片内容。 从给出的内容部分来看,文章首先提出了一个具体的问题场景:当点击按钮时,...

    动态创建script标签实现跨域资源访问的方法介绍

    function request(id,url){ oScript = document.getElementById(id); var head = document.getElementsByTagName(... } oScript = document.createElement(“script”); oScript.setAttribute(“src”, url);

    JavaScript动态添加css样式和script标签

    // 为&lt;script&gt;标签添加src属性,值为JavaScript文件的URL head.appendChild(script); // 将&lt;script&gt;标签添加到元素的子节点下 } ``` 在这个示例中,`&lt;script&gt;`元素的`type`属性被设置为"text/javascript",表示...

    java实现动态标签页的4种方法

    在Java开发Web应用程序时,创建动态标签页是一个常见的需求,特别是在构建用户界面丰富的B/S系统时。动态标签页能够提供良好的用户体验,使用户能够轻松地在多个视图之间切换。以下将详细介绍使用EasyUI、JQuery、...

    IE8中动态创建script标签onload无效的解决方法

    在IE8中,动态创建`&lt;script&gt;`标签并设置其`onload`事件处理函数时,可能会遇到一个已知的问题,即`onload`事件在IE8中可能不会按照预期触发。这个问题通常与JavaScript的加载顺序有关,尤其是当涉及到异步加载脚本时...

    vue动态加载js.zip

    2. 设置src属性:将需要加载的JavaScript文件的URL设置为`&lt;script&gt;`元素的`src`属性。例如,如果文件名为`/path/to/myScript.js`,则设置`script.src = '/path/to/myScript.js'`。 3. 添加到DOM:将这个`&lt;script&gt;`...

    js 修改 fck 编辑器的值

    #### 使用 FCKeditor API 进行动态修改编辑器的值 在 FCKeditor 的官方文档中提供了丰富的 API 接口,这些接口可以让我们方便地与编辑器进行交互。其中一个常用的方法是 `SetHTML()`,它可以用来设置编辑器的内容。...

    how-to-load-dynamic-script, 加载动态脚本的正确方法.zip

    &lt;script src="path/to/script.js"&gt;&lt;/script&gt; ``` 然而,这种方式是静态加载,所有脚本会在页面解析时立即加载。 3. 动态创建`&lt;script&gt;`元素: 要实现动态加载,可以使用JavaScript动态创建`&lt;script&gt;`元素并将其...

    JavaScript动态插入script的基本思路及实现函数

    在前端开发过程中,经常会遇到需要动态加载JavaScript文件的情况,尤其是在初始化页面时不需要立即使用,或者根据用户操作来决定加载哪些脚本时,动态插入script标签就显得十分必要。本文将详细介绍动态插入script...

    Android中修改资源ID值

    然而,在某些特殊情况下,我们可能需要修改这些ID的值。这通常是由于资源冲突、调试需求或者在不同模块间共享资源时发生的。本篇文章将详细介绍如何在Android项目中修改资源ID及其相关的注意事项。 1. **修改资源ID...

    动态创建iframe,并动态添加js执行代码

    在IT行业中,动态创建iframe和动态添加JavaScript代码是一种常见的技术,尤其在页面加载后需要异步加载内容或者实现跨域通信时。以下是对这个主题的详细讲解。 首先,`iframe`(Inline Frame)是HTML中的一种元素,...

    javascript 获取url参数和script标签中获取url参数函数代码

    在JavaScript编程中,有时我们需要获取URL中的参数或者脚本(script)标签中的参数。这些参数在Web应用中常用于传递动态数据或者配置信息。本文将详细介绍如何通过JavaScript获取URL参数和script标签中的参数,并...

    android动态改变shape的颜色值

    如果我们想要动态地改变这些颜色,我们需要在Java代码中获取Shape的引用,并修改其属性。 以下是如何在运行时动态改变Shape颜色的基本步骤: 1. **定义Shape资源**:在`res/drawable`目录下创建XML文件,例如`...

Global site tag (gtag.js) - Google Analytics