`

JavaScript插入动态脚本

 
阅读更多

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。

动态加载外的外部JavaScript文件能够立即运行,比如下面的<script>元素。

 

<script type="text/javascript" src="client.js"></script>

 

 

而创建这个节点的DOM代码如下所示:

 

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "client.js";
document.body.appendChild(script);

 

 

显然这里的DOM如实的反映了相应的HTML代码。不过执行最后一行代码把<script>元素添加到页面之前,是不会下载外部文件的。也可以把这个元素添加到<head>元素中效果相同。整个过程可以使用下面的函数来封装:

 

function loadscript(url) {
    var script = document.createElement("script");
    var script.type = "text/javacript";
    script.src = url;
    document.body.appendChild(script);
}

 

 

然后,就可以通过调用这个函数来加载外部的JavaScript文件了:

 

loadScript("client.js");

 

 

加载完成后,就可以在页面中的其它地方使用这个脚本了。

另一种指定JavaScript代码的方式是行内方式,如下面的例子所示:

 

<script type="text/javascript">
function sayHi() {
    alert("hi");
}
</script>

 

 

从逻辑上讲,下面的DOM代码是有效的:

 

var script = document.createElement("script");
script.type = "text/javascript";
script.appendChild(document.createTextNode("function sayHi() {alert('hi');}"));
document.body.appendChild(script);

 

 

在Firefox、Safari、Chrome和Opera中,这些DOM代码可以正常运行。但在IE中,则会导致错误。IE将<script>视为一个特殊的元素,不允许DOM访问其子节点。不过,可以使用<script>元素的text属性来指定JavaScript代码,想下面的例子这样:

 

var script = document.creatElement("script");
script.type = "text/javascript";
script.text = "function sayHi() {alert('hi');}";
document.body.appendChild(script);

 

 

经过修改之后的代码可以在IE、Firefox、Opera和Safari3.0中运行。Safari3.0之前的版本虽然不能正确的支持text属性,但却允许使用文本节点技术来指定代码。如果需要兼容早期版本的Safari,可以使用下列代码:

 

var script = document.createElement("script");
script.type = "type/javascript";
var code = "function sayHi() {alert('hi');}";
try {
    script.appendChild(document.createTextNode(code));
} catch (ex) {
    script.text = code;
}
document.body.appendChild(script)

 

 

这里首先尝试标准的DOM文本节点方法,因为除了IE(在IE中会导致抛出错误),所有的浏览器都支持之中方式。如果这行代码抛出了错误,那么说明是IE,于是就必须使用text属性了,整个过程可以用以下函数来表示:

 

function loadScriptString(code) {
    var script = document.createElement("script");
    script.type = "text/javascript";
    try {
        script.appendChild(document.createTextNode(code));
    } catch (ex) {
        script.text = code;
    }
    document.body.appendChild(script);
}
loadScriptString("function sayHi() {alert('hi');}");

 转自http://www.w3cmm.com/dom/insert-javascript.html

 

分享到:
评论

相关推荐

    如何让动态插入的javascript脚本代码跑起来

    在JavaScript编程中,动态插入脚本是一种常见的技术,用于在页面加载后或者根据某些条件按需加载外部的JavaScript文件。这种技术在处理大型应用、优化页面性能或实现异步加载时非常有用。本文将详细介绍如何让动态...

    javascript过滤危险脚本方法.docx

    JavaScript过滤危险脚本是Web开发中的重要安全措施,主要用于防止跨站脚本攻击(XSS,Cross-Site Scripting)。XSS攻击允许攻击者在用户的浏览器中注入恶意脚本,可能导致敏感数据泄露、用户会话劫持等严重后果。...

    基于javascript脚本开发的网页计算器

    JavaScript是一种广泛应用于网页和网络应用开发的编程语言,它允许开发者在用户浏览器上直接执行代码,为用户提供动态交互体验。本项目"基于JavaScript脚本开发的网页计算器"旨在实现一个基本的网页计算器,提供与...

    深入理解javascript动态插入技术

    在深入理解JavaScript动态插入技术的探讨中,我们首先关注到的是动态插入技术的核心概念,即如何使用JavaScript将HTML内容动态地添加到网页中。这类技术允许开发者在不重新加载页面的情况下,修改页面的结构和内容。...

    JS动态插入脚本和插入引用外部链接脚本的方法

    js 动态插入脚本也有两种方式:插入 JavaScript 代码和插入外部文件。 一、直接插入 javascript 代码 [removed] function sayHi() { alert&#40;"hi"&#41;; } [removed] 从逻辑上讲,下面的 DOM 代码是有效的: ...

    JSP中使用JavaScript动态插入删除输入框实现代码.docx

    JSP中使用JavaScript动态插入删除输入框实现代码 JSP(Java Server Pages)是一种基于Java技术的服务器端脚本语言,主要用于生成动态网页内容。JavaScript则是一种客户端脚本语言,主要用于实现网页的交互功能。在...

    office文档处理,动态脚本.zip

    在这个压缩包中,可能包含的代码示例会演示如何使用Java来处理Office文档,如创建、读取或更新文件内容,以及如何集成和执行动态脚本,例如用JavaScript实现特定的业务逻辑。学习这些示例可以帮助开发者提高在实际...

    JavaScript脚本

    `&lt;script&gt;`标签是将JavaScript代码插入HTML文档的主要方式。它可以出现在文档的任何位置,但通常位于`&lt;head&gt;`或`&lt;body&gt;`标签内。例如: ```html &lt;script language="JavaScript"&gt; document.write("Hello"); ``` ...

    javascript函数动态加载javascript文件

    JavaScript是一种广泛应用于网页和网络应用开发的脚本语言,它主要负责处理客户端的交互和数据管理。在实际项目中,为了提高页面加载速度和优化用户体验,我们常常需要按需加载JavaScript文件,而不是一次性加载所有...

    这个例子很好的演示了IntraWeb如何插入javaScript脚本

    这个例子很好的演示了IntraWeb如何插入javaScript. 用一个时钟显示一个会话的到期秒数。 setInterval是 JavaScript 中的一个全局函数,用于重复调用一个函数或执行一个代码片段,每隔指定的周期(以毫秒为单位)。...

    javascript脚本语言

    JavaScript是一种轻量级的...总之,JavaScript作为客户端脚本语言,极大地丰富了网页的交互性和动态效果。通过理解其基础语法、使用内置对象以及正确地插入和引用脚本,开发者可以创建出功能强大且用户友好的网页应用。

    用法javascript插入样式_.docx

    JavaScript插入样式的方法主要分为两种:一种是通过创建`&lt;style&gt;`标签动态插入内联样式,另一种是通过创建`&lt;link&gt;`标签引入外部样式文件。这两种方法在不同的场景下各有优势,下面将详细介绍。 ### 一、JavaScript...

    JavaScript脚本编程.ppt

    JavaScript是一种广泛应用于Web开发的脚本语言,主要在客户端运行,用于增强网页的交互性和动态性。本课程的目的是帮助学习者理解客户端编程的基本思路,掌握Web开发的编程思想,并能熟练运用JavaScript来编写和控制...

    javascript脚本调试工具

    JavaScript脚本调试是Web开发中的重要环节,它帮助开发者定位并修复代码中的错误,提高程序的稳定性和用户体验。本文将详细介绍使用MSScriptControl微软脚本控件进行JavaScript调试的方法和技巧。 MSScriptControl...

    winform 服务器端插入脚本实现跳转源码

    这个“winform 服务器端插入脚本实现跳转源码”很可能包含了一种方法,通过在服务器端执行脚本来控制WinForm客户端的应用程序行为,特别是实现页面或窗口之间的跳转。下面我们将深入探讨WinForm和服务器端脚本交互的...

    传智播客_张孝祥_JavaScript6_脚本编程

    《传智播客_张孝祥_JavaScript6_脚本编程》是针对JavaScript ES6(ECMAScript 2015)版本的一门课程,由资深讲师张孝祥讲解。JavaScript,作为互联网上最广泛使用的脚本语言,是前端开发的基石。随着ES6的发布,它...

    JavaScript脚本精华-JS脚本精华

    JavaScript,简称JS,是一种广泛应用于Web开发的轻量级编程语言,主要负责客户端的动态交互。作为网页和浏览器之间的桥梁,它使得网页可以实现丰富的用户体验和动态功能。本压缩包"JavaScript脚本精华"汇集了大量JS...

    JavaScript 动态添加脚本,并触发回调函数的实现代码

    在JavaScript中,动态添加脚本是一种常见的编程技巧,它允许我们在网页加载后或者根据需要时按需加载外部JavaScript文件。这种技术通常用于延迟加载、模块化开发或优化页面性能。回调函数是JavaScript中的核心概念,...

    如何让动态插入的javascript脚本代码跑起来。

    在网页开发中,有时我们需要在页面加载过程中动态插入JavaScript脚本,这通常是为了实现异步加载、延迟加载或根据用户行为动态引入特定功能。本文将详细介绍两种常见的动态插入JavaScript脚本的方法,以及如何确保...

    引入JavaScript脚本代码到HTML文档中

    总结来说,引入JavaScript到HTML文档是为了实现动态交互,可以通过内联、内部脚本和外部脚本三种方式实现。为了保持代码组织和提高性能,推荐使用外部脚本,并利用`async`和`defer`属性。在实际项目中,还要考虑...

Global site tag (gtag.js) - Google Analytics