【问题标题】:How to receive variables in a js file when I create it with Element script from another JS file?当我使用另一个 JS 文件中的 Element 脚本创建 js 文件时,如何在 js 文件中接收变量?
【发布时间】:2014-07-31 01:11:19
【问题描述】:

我有“file1.js”和下面的代码,我在其中创建了一个元素脚本来调用另一个名为 test.js 的 js 文件

var property = 'email';

var NewScript=document.createElement('script');
NewScript.src="/js/test.js?property="+property;
document.body.appendChild(NewScript);

代码工作正常,因为调用(或插入)文件“test.js”我的问题是我还想向“test.js”发送一个变量以在那里使用它,我不知道如何发送/接收这个变量那样,有什么帮助吗?

这是我在“test.js”中应该有的

alert(property);

但是我如何接收这个变量呢?

【问题讨论】:

    标签: variables createelement


    【解决方案1】:

    不,您不能将查询字符串参数传递给这样的 javascript 文件。我所看到的是在创建新的 javascript 文件引用之前在脚本中设置变量。这就是您在上面所做的事情,但是您需要在您拥有此代码的任何函数之外声明您的属性变量。因此,例如,如果您在 jQuery 文档就绪函数中有此代码,它看起来像这样:

    var property = 'email';
    
    $(document).ready(function () {
        var NewScript = document.createElement('script');
        NewScript.src = "/js/test.js";
        document.body.appendChild(NewScript);
    });
    

    这将允许您的属性变量保留在外部文件的范围内。 HTML JavaScript Include File Variable Scope

    【讨论】:

    • 这正是要走的路。另外@Saymon,请考虑在请求中您的?property=whatever 会发生什么。从浏览器的角度来看,这只是一个 URL。由于没有识别它指向的服务器和请求的类型(在本例中为 GET),它对查询字符串参数没有任何作用。它只是构造必要的请求并将其发送到服务器。在这种情况下,服务器会忽略查询字符串,并简单地返回文件内容,浏览器加载该文件内容时不会进行代码注入或基于值 URL 的任何其他特殊处理。
    • 感谢 ptfaulkner 的回答,它没有解决我的问题,但它让我走上了正确的道路,现在我解决了,再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多