javascript - 将参数传递给多次调用的外部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*
解决方案
您正在寻找的内容与 JS 行为不一致。当您要求浏览器两次带入相同的资源(图像、视频或在本例中为 JS 文件)时,它只会带一次。但是你为什么要这样走?为什么不简单地使用
函数 a(someId) {...}
然后发送 1234 或 1235 或其他。我应该认为要简单得多。顺便说一句 - 我从未听说过 data-use="this" 或 data-use="that"。那是一些新的JS语言吗?
推荐阅读
- java - Mule Http 连接器提供 BufferInputStream ,它在转换时提供垃圾值
- java - 在 Java 中执行 Linux 命令时,缓冲区读取器添加“[?1034h”作为最后一行
- python - 根据 setup_module 或其他函数的输出动态参数化 pytest 测试函数
- laravel - 检查下一个运行 Laravel 的时间表是什么时候
- sql - SQL Server 选择列中的所有最大和最小数据
- delphi - TDBNavigator 背景透明度颜色错误
- python - 如何使用字典值中的精确字符串创建新列表?
- java - 将响应转换为字符串 JAVA 时出现 500 状态
- c - 如何集成模块?
- java - Jackson - 基于多个属性的自定义 TypeId 解析器