如何在脚本标记内设置变量

时间:2012-07-12 18:06:30

标签: javascript html javascript-events

我有一个页面名称index.php。我在页面顶部有一个脚本变量如下:

<script>
    var search_quarry = "some_test";
</script>

在同一页面的底部,我想将此变量添加到脚本标记的src属性中:

<script src=NEED_TO_ADD_HERE></script>

这不起作用:

<script src=search_quarry> </script>

有人可以告诉我怎么做吗?

4 个答案:

答案 0 :(得分:9)

您需要使用DOM操作:

var search_query = 'some_test';
s = document.createElement('script');
s.src = search_query;
document.getElementsByTagName('head')[0].appendChild(s);

或者,作为替代方案,虽然我不确定这是否有效:

<script id="fixme"></script>
<script type="text/javascript">
    var search_query = 'some_test';
    document.getElementById('fixme').src = search_query;
</script>

答案 1 :(得分:1)

你为什么要这样做?看起来像是在不修复后端的情况下使服务器代码工作的黑客

选项1是document.write

<script>
    document.write("<script src='" + search_quarry + "'></scr" + "ipt>");
</script>

选项2是使用createElement和appendChild

<script>
    var scr = document.createElement("script");
    scr.src = search_quarry;
    document.getElementsByTagName("head")[0].appendChild(scr);  //or use body with document onready
</script>

答案 2 :(得分:0)

这是一种做你想做的事的简单方法

window.onload=function(){
    var script=document.createElement("script");
    script.type="text/javascript";
    script.src=search_quarry;
    document.appendChild(script)
}

虽然您希望将window.onload更改为其他内容,或者只是将代码放在顶层,或者使用jQuery:

$(document).ready(function(){
    $(document).append("<script type='text/javascript' src='"+search_quarry+"'/>");
});

答案 3 :(得分:-1)

这是不可能的。你不能在javascript的声明标签中使用javascript变量。这就是标签的要点:它们内部的所有内容都被解析为javascript;他们之外的一切都不是。