动态加载javascript

动态加载javascript,javascript,Javascript,我的HTML表单中有2个链接。当用户单击链接时,我希望加载相关的javascript页面,而不重新加载整个页面 我在HTML页面中使用了以下代码: <body id="b"> <h1>Page that switch between CSS and JS</h1> <div class="container" id="content"> <div class="link" id="li"> <ul class="men

我的HTML表单中有2个链接。当用户单击链接时,我希望加载相关的javascript页面,而不重新加载整个页面

我在HTML页面中使用了以下代码:

<body id="b">
<h1>Page that switch between CSS and JS</h1>
<div class="container" id="content">
  <div class="link" id="li">
    <ul class="menu" id="nav">    
      <li><a id="three" href="#" onclick="switchjs1();">JavaScript 1</a></li>
      <li><a id="four" href="#" onclick="switchjs2();">JavaScript 2</a></li>      
    </ul>
  </div>
  <div class="content" id="con">
    <form action="" method="post" class="f1" id="f1">
        <table class="t">
            <tr>
            <td><label>Label 1</label></td>
            <td><input type="button" id="1" value="Show 1" class="btn1"/></td>
            </tr>
            <tr>
            <td><label>Label 2</label></td>
            <td><input type="button" id="2" value="Show 2" class="btn2"/></td>
            </tr>
            <tr>
            <td><label>Label 3</label></td>
            <td><input type="button" id="3" value="Show 3" class="btn3"/></td>
            </tr>
            <tr>
            <td><label>Label 4</label></td>
            <td><input type="button" id="4" value="Show 4" class="btn4"/></td>
            </tr>
        </table>
    </form>
  </div>
</div>
</body>

在CSS和JS之间切换的页面
标签1 标签2 标签3 标签4
以及以下脚本代码:

<script type="text/javascript">
    var headID = document.getElementsByTagName("head")[0];         
    var jsNode = document.createElement('script');
    jsNode.type = 'text/javascript';
    jsNode.id = 's1';

    headID.appendChild(jsNode);

    function switchjs1()
    {
        var js = document.getElementById("s1");
        js.removeAttribute('src');
        js.setAttribute("src", "js1.js");
    }

    function switchjs2()
    {
        var js = document.getElementById("s1");
        js.removeAttribute('src');
        js.setAttribute("src", "js2.js");
    }
</script>

var headID=document.getElementsByTagName(“head”)[0];
var jsNode=document.createElement('script');
jsNode.type='text/javascript';
jsNode.id='s1';
headID.appendChild(jsNode);
函数switchjs1()
{
var js=document.getElementById(“s1”);
js.removeAttribute(“src”);
setAttribute(“src”、“js1.js”);
}
函数开关JS2()
{
var js=document.getElementById(“s1”);
js.removeAttribute(“src”);
setAttribute(“src”、“js2.js”);
}
通过上面的代码,我创建了一个
标记,我想根据用户单击的链接设置
src
属性的值。但它只加载与用户首先单击的链接相关的JavaScript文件。例如,如果用户单击“javascript 1”链接,它将加载
js1.js
文件,但当用户单击“javascript 2”链接时,它不会加载
js2.js
文件

请帮助我,因为这已经成为一个大问题。
谢谢。

要动态加载javascript,请使用以下代码:

function IncludeJavaScript(file) {
if (document.createElement && document.getElementsByTagName) {
    var head = document.getElementsByTagName('head')[0];

    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', file);

    head.appendChild(script);
} else {
    alert('unsupported browser');
}
}
然后,您可以单击按钮插入反javascript:

IncludeJavaScript("url_to_your_javascript");

但是,我想知道是否所有的EventListener都设置好了,您可能需要解决这个问题。在新javascript函数中调用方法应该不会有问题。

请修复格式设置。还有,你想要实现什么?您知道替换
script
元素的
src
属性不会卸载以前的脚本吗?您能缩进标记和代码以使其正确显示吗?谢谢。:)很抱歉我不知道如何缩进这个站点上的标记…:-(固定格式和语法。@阿披舍克:突出显示代码,然后用{}键单击按钮有两个链接与两个javascript文件相关,当用户点击链接时,我必须在两个javascript文件之间切换。你能指出“生成脚本”是什么意思吗?我的意思是,你指的是js1.js或js2.js,对吧?看,我的html表单上有两个链接&我只希望当用户点击一个链接时,javascript f与该链接相关的文件将被加载…因此,当用户单击链接时,您可以像这样调用函数(抱歉,请提前发布:)。您可以这样调用函数
code
onclick=“IncludeJavascript('js1.js');removescript('js2.js');”
code
当然,您还必须定义一个删除其他javascript文件的函数,或者编写一个切换函数