【问题标题】:How do I set the src address dynamically?如何动态设置 src 地址?
【发布时间】:2012-10-07 09:06:57
【问题描述】:

我正在尝试从页面 url 中获取信息以设置数据文件的 src。

所以,假设页面 url 是:page.html?x=data_file_3 (想法是我可以更改 url 以访问其他数据文件:data_file_4 等)

我抓取 url 的“data_file_3”部分并将其放入变量中: (我用于此的代码工作正常 - 所以结果是) folder = "/data_file_3/content.js" -- 这个文件的内容只是一个数组

然后我试试这个:

<script id="url" type="text/javascript"></script>

<script language="javascript">
...
var u = document.getElementById('url');
u.src = folder;
...
</script>

但这不起作用(数组数据不会显示在页面上)。我把这段代码放在我以前硬编码的地方:

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

硬编码版本有效。关于如何做到这一点的任何想法?

【问题讨论】:

    标签: javascript src


    【解决方案1】:

    听起来您正在尝试动态创建脚本标签。

    var scr = document.createElement('script');
        scr.src = 'script_path';
    
    document.getElementsByTagName('head')[0].appendChild(scr);
    

    您可以将其包装在一个函数中,其中 'script_path' 是您传入的任何路径。

    另请注意,'text/javascript' 不是必需的。所有浏览器都知道它的javascript。

    【讨论】:

    • 对我来说非常有意义,但仍然无法正常工作(我使用了 alert() 来检查路径并且它是正确的)。我在这里缺少某种“执行顺序”吗?如果这附加到头部并且使用数据的代码在正文中,为什么会出现问题?我被难住了。
    • [Here's the whole thing](view-source:mrthomasbh.squarespace.com/storage/interactive_reading.html) -- src 的内容就在 head 部分。您可以将 ?z=/storage/crim/c02_irc_warrior 附加到 url 以查看脚本确实获取了内容文件夹。
    • 您使用的是 jQuery,因此将您的 xcontent 资源更改为 json 文档并通过 xhr 请求返回。
    猜你喜欢
    • 1970-01-01
    • 2018-10-07
    • 2019-10-07
    • 2021-11-21
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2019-12-25
    • 1970-01-01
    相关资源
    最近更新 更多