首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JS变量设置<script>标记的源属性

使用JS变量设置<script>标记的源属性
EN

Stack Overflow用户
提问于 2012-06-22 12:57:38
回答 5查看 63.5K关注 0票数 34

我想使用一个javascript变量作为同一jsp上另一个标签的'src‘属性。

代码语言:javascript
复制
<script>
var link = mylink // the link is generated based on some code
</script>

我想创建这个新元素,如下所示。

代码语言:javascript
复制
<script src="mylink">
</script>

在搜索各种论坛时,我尝试使用以下选项,但它们似乎不起作用。我希望这个东西能在所有主流浏览器上运行。

  1. 将此代码放在第一个元素中。

document.body.appendChild(script);

  • Use script = document.createElement("script");script.type = "text/javascript";script.src = "path/to/somelink";第一个元素中的var文档写入方法。

在第一个元素中设置一个document.write("<\/script>");

  • Tried变量并使用它。

这些方法都不是成功的。对哪里出了问题有什么建议吗?

EN

回答 5

Stack Overflow用户

发布于 2013-03-01 20:43:21

尽管CDATA运行良好,但使用document.createElement也是一个很好的选择。特别是如果您打算将一些值附加到URL中,例如用于缓存破坏。

代码语言:javascript
复制
<script type="text/javascript"> 
    var JSLink = "/Folder/sub_folder/version.js?version=" + Math.random();
    var JSElement = document.createElement('script');
    JSElement.src = JSLink;
    JSElement.onload = OnceLoaded;
    document.getElementsByTagName('head')[0].appendChild(JSElement);

    function OnceLoaded() {
        // Once loaded.. load other JS or CSS or call objects of version.js
    }
</script>

代码很好..:)

票数 20
EN

Stack Overflow用户

发布于 2012-06-22 13:13:30

我使用类似于第二种选择的方法。您的代码中有一个小错误,因为"google.com“需要用引号括起来。

为了提高兼容性,您可能希望将其编写为:

代码语言:javascript
复制
document.write("<script type='text/javascript' src='"+ x + "'><\/scr" + "ipt>");

在这种情况下,x将是要包含的文件。您可以将其定义为:

代码语言:javascript
复制
var x = "http://google.com/script.js";

代码语言:javascript
复制
var x = "path/to/script.js";
票数 5
EN

Stack Overflow用户

发布于 2012-06-22 13:15:36

你会使用jQuery吗?如果是这样,您可以使用getScript()

http://api.jquery.com/jQuery.getScript/

代码语言:javascript
复制
$.getScript(mylink, function() {
   // do something using the JS that was loaded.
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11150409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档