首页 > 解决方案 > 将参数传递给多次调用的外部JS文件

问题描述

我使用的技术需要对同一个外部 JS 进行不同的调用。外部 JS 在 iframe 内调用并在那里创建输出。例如:

// Placement 1
<script async id="1234" src="external.js"></script>
// Placement 2    
<script async id="1235" src="external.js"></script>

我知道有各种相关的问题,但他们都假设外部文件只被调用一次,所以它不需要选择从哪个 ID 获取参数。

在 external.js 中有没有办法知道哪个 ID 调用了它并使用了它的参数?例如,根据调用它的 ID 使用“this”或“that”:

<script async id="1234" src="external.js?use=this" ></script>
<script async id="1234" src="external.js?use=that" ></script>
// or
<script async id="1235" src="external.js" data-use="this"></script>
<script async id="1235" src="external.js" data-use="that"></script>
// etc. Even the MYLIBRARY way*

标签: javascriptparameter-passing

解决方案


您正在寻找的内容与 JS 行为不一致。当您要求浏览器两次带入相同的资源(图像、视频或在本例中为 JS 文件)时,它只会带一次。但是你为什么要这样走?为什么不简单地使用

函数 a(someId) {...}

然后发送 1234 或 1235 或其他。我应该认为要简单得多。顺便说一句 - 我从未听说过 data-use="this" 或 data-use="that"。那是一些新的JS语言吗?


推荐阅读