我正在尝试创建一个脚本,使用户更容易使用自定义按钮,我有类似的东西
<script src="http://host.com/file.js?id=12345"></script>
我想知道的是我怎样才能file.js
获得该id
参数。
如果我使用document
,它将获得包含脚本行的原始 html 页面,而我需要的是那个id
。
有什么方法可以让我成功获得该 ID 吗?范围应该是多少?
添加
这个想法是我可以在页面中有几个按钮,例如有一个小而简单的列表:
<ul>
<li><script src="http://host.com/file.js?id=12345"></script></li>
<li><script src="http://host.com/file.js?id=23456"></script></li>
<li><script src="http://host.com/file.js?id=34567"></script></li>
</ul>
这最终将转化为
<ul>
<li><a class="view40btn" href="#" data-id="12345"><strong>V40</strong> Watch the video</a></li>
<li><a class="view40btn" href="#" data-id="23456"><strong>V40</strong> Watch the video</a></li>
<li><a class="view40btn" href="#" data-id="34567"><strong>V40</strong> Watch the video</a></li>
</ul>
上面的列表在 HTML 中将如下所示:
我唯一的问题是我无法为data-id
属性分配正确的 id,因为它是在file.js
.
结果
从Paulpro 的回答中,我得到了他的想法,并且知道客户端将加载更多的脚本和几个脚本,id
我对最终版本和工作版本进行了一些更改:
var id = (function(){
var scripts = document.getElementsByTagName('script');
for(var i = 0, result = {}; i < scripts.length; i++)
if(scripts[i].hasAttribute('data-viewfileid'))
result['id'] = decodeURIComponent(scripts[i].getAttribute('data-viewfileid'));
return result['id'];
})();
var html = '<a class="view40btn" href="#" data-id="' + id + '"><strong>V40</strong> Watch the video</a>';
document.write(html);
用户的脚本只会是:
<script data-viewfileid="4444" src="file.js" type="text/javascript"></script>