【问题标题】:Pass parameters in js file inclusion [duplicate]在js文件包含中传递参数[重复]
【发布时间】:2013-01-28 08:01:28
【问题描述】:

我正在尝试包含这样的 .js 文件:

<script src="javascriptfile.js"></script>

但是,我真正想要的是像这样将一些参数传递给我的 .js 文件:

<script src="javascriptfile.js?id=3482"></script>

我应该如何从.js 文件中读取id= 部分?

【问题讨论】:

  • 你已经是第二个了
  • document.location.search 获取查询字符串,但我真的不认为这样做是个好主意。
  • @adeneo - 获取文档的查询字符串,而不是脚本的查询字符串。
  • @jfriend00 - 你说得对,JS 仍然在文档级别执行。那就更糟糕了?

标签: javascript parameters include


【解决方案1】:

这只能通过访问 HTML DOM 中的“自己的”元素并解析 src 属性来实现。

这是一篇不错的文章,其中包含详细的解释和代码示例: http://feather.elektrum.org/book/src.html

【讨论】:

    【解决方案2】:

    这是一种新的方法。

    您可以使用 JSON.parse()。

    这里是一个例子:

    html中的代码:

    <script id="scriptID" src="demo.js">
            {
                "param1":"Hello World!", 
                "param2":"paramLorem"
            }
    </script>
    

    demo.js 中的代码:

    jQuery(document).ready(function(){
       var myAttributes = JSON.parse(jQuery('#scriptID').html());
       alert(myAttributes['param1']);
    });
    

    您将收到“Hello World!”的警报。

    希望它可以帮助别人!

    【讨论】:

    • 完美,就像魔术一样。
    • 如果我这样做,我的分号上会出现错误; expected
    • @annedroiid : 你可能犯了一个 sythax 错误,因为它的工作就像一个魅力!
    【解决方案3】:

    从它加载的 javascript 中找到您自己的脚本标签并不容易。可以搜索文档中的所有脚本标签并找到其中包含您的文件名的标签并解析出查询字符串,但是在脚本加载之前设置一个变量要容易得多,如下所示:

    <script>var javascriptfile_id = 3482;</script>
    <script src="javascriptfile.js"></script>
    

    然后,只需检查脚本中的 javascriptfile_id 变量即可。

    【讨论】:

    • 看来,您的代码是错误的。您正在将纯 JS 代码与 HTML 混合。那应该放在哪里?在.html 文件或.js 中?您还应该使用&lt;script&gt;&lt;/script&gt; 概述代码的第一行。
    • @trejder - 我刚刚添加了缺少的脚本 tgs。
    • 谢谢!我自己无法做到这一点,因为答案中的大多数代码更改通常都放在审查队列中。我们不应该使用编辑/审查来更改代码或答案的含义,而只是为了简单的更正——至少这是他们一直告诉我的......
    【解决方案4】:

    您可以使用 jQuery 解析参数,但我觉得这有点令人费解。这是一个例子:http://wowmotty.blogspot.com/2010/04/get-parameters-from-your-script-tag.html

    更好的方法是在 JS 文件中创建一个初始化方法,并在页面加载时使用您的参数调用该初始化方法。

    【讨论】:

      【解决方案5】:

      如果变量不是用于服务器的,则不能通过查询字符串将变量传递给加载的脚本,以便服务器端脚本可以在将 JavaScript 发送到客户端之前对其进行预处理。

      如果要将变量传递给外部脚本中的代码,则必须将 id 设为全局 JavaScript 变量。或者您必须在外部脚本文件中调用一个函数,将该值作为参数传递给该函数。

      【讨论】:

        猜你喜欢
        • 2011-01-09
        • 2015-12-21
        • 1970-01-01
        • 2021-10-16
        • 2017-08-01
        • 2018-03-17
        • 2019-09-08
        • 2017-02-16
        • 1970-01-01
        相关资源
        最近更新 更多