`

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脚本开发的网页计算器

    标准型计算器的功能基本上都可以实现,科学型的还未深究、有兴趣者可以加我共同探讨。。。。

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

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

    javascript插入样式实现代码

    javascript插入样式在前端开发中应用比较广泛,特别是在修改前端表现和页面换肤的时候。最近做的这个任务是用户在别人的站点上点击一个按钮,就会在别的站点页面下插入一个脚本,执行,这其中包含了样式的插入。 ...

    JavaScript脚本库编写的方法

    普通网页内都会插入一些JavaScript代码。当浏览器加载该页面时,浏览器的内置解释器将读取并运行它在该页面中找到的JavaScript代码。 做Web开发已经四年,或多或少积累了一些JavaScript脚本。比如,限制input只允许...

    JavaScript脚本专业编辑软件

    Antechinus JavaScript Editor 可以使你轻松快速的在网页中插入JavaScript代码。友好的用户界面,快捷的工具栏,智能的语法填充助手。方便鼠标单击文档导航条,丰富的分类源代码库,一切的设计都让你的效率倍增! 这...

    《JavaScript与Jscript从入门到精通》[PDF]

    JavaScript和JScript语言可以把HTML文档、用Java或ActiveX编写的Web组件及多媒体插入件集成起来,开发动态的、可响应各种用户输入的高级Web应用程序,也可以用于开发服务器中使用的Web应用程序。 本书将介绍...

    JavaScript Editor

    1st javascript editor是JavaScript 脚本编辑软件,有着丰富的代码编辑功能(JavaScript, HTML, CSS, VBScript, PHP ,ASP(Net)语法加亮),内置预览功能,提供了完整的HTML 标记, HTML 属性, HTML 事件, JavaScript ...

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

    在日常的前端开发中,偶尔有需要动态插入javascript代码的需求,基本思路是: 1、动态创建一个script标签,设置其src属性,type属性等 2、将script节点插入页面,加载js文件 即相当于将[removed][removed]添加到了...

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

    直接插入src,这种方法简单而直接,但有局限性, 1) [removed] var x=document.createElement(“SCRIPT”); x.src=”a.js”; x.defer=true; document.getElementsByTagName(“HEAD”)[0].appendCh

    Javascript脚本库:jQuery类库

    jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的J&ouml;rn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrīpt框架...

    JavaScript基础教程第8版

    10.5 插入节点 197 10.6 替换节点 199 10.7 用对象字面值编写代码 202 第11章 建立动态页面 206 11.1 在网页上显示当前日期 206 11.2 处理周中的日期 208 11.3 根据时间对消息进行定制 209 11.4 ...

    JavaScript 权威指南(第四版).pdf

     15.6 创建、插入和删除节点382  15.7 例子:生成目录表387  15.8 文档和元素的几何形状和滚动389  15.9 HTML表单396  15.10 其他文档特性404  第16章 脚本化CSS410  16.1 CSS概览411  16.2 重要的CSS属性...

    JavaScript权威指南(第6版)

    15.6 创建、插入和删除节点 15.7 例子:生成目录表 15.8 文档和元素的几何形状和滚动 15.9 HTML表单 15.10 其他文档特性 第16章 脚本化CSS 16.1 CSS概览 16.2 重要的CSS属性 16.3 脚本化内联样式 16.4 查询计算出的...

    最好的JavaScript编辑工具 Javascript Editor 5.1

    JavaScript 脚本编辑软件,有着丰富的代码编辑功能(JavaScript, HTML, CSS, VBScript, PHP ,ASP(Net)语法加亮),内置预览功能,提供了完整的HTML 标记, HTML 属性, HTML 事件, JavaScript 事件和JavaScript 函数等...

    JavaScript权威指南(第6版)中文版pdf+源代码

     15.6 创建、插入和删除节点382  15.7 例子:生成目录表387  15.8 文档和元素的几何形状和滚动389  15.9 HTML表单396  15.10 其他文档特性404  第16章 脚本化CSS410  16.1 CSS概览411  16.2 重要的CSS属性...

    JavaScript权威指南(第6版)(附源码)

    15.6 创建、插入和删除节点 15.7 例子:生成目录表 15.8 文档和元素的几何形状和滚动 15.9 HTML表单 15.10 其他文档特性 第16章 脚本化CSS 16.1 CSS概览 16.2 重要的CSS属性 16.3 脚本化内联样式 16.4 查询计算出的...

    JavaScript 简介

    JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JavaScript 很容易学习。 您将学到什么 下面是...

    JavaScript资料

    JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 JavaScript 很容易学习。

Global site tag (gtag.js) - Google Analytics