我想创建一个可放置在其他网站/论坛中的小部件。
<script type="text/javascript" src="http://example.com/x.js" />
<div id="myid"></div>
但是有一个问题 - 当有人在一个网站上放置两个或更多这样的小部件时,由于ID而无法正常工作。
我该怎样做才能防止这种情况发生?
我不能使用类,因为我需要从JS访问这个div。 我想在ID的末尾添加一个随机生成的数字,但仍然存在ID冲突的可能性(很小,但会有)。
答案 0 :(得分:1)
最好的方法是更灵活。因此,您应该提供一种让用户选择其ID的方法,而不是使用已定义的html id并强制用户拥有它。因此,必须进行通话。
这样的事情更干净:
<script type="text/javascript" src="http://example.com/x.js"></script>
<script type="text/javascript">
X.callMethod("myId");
</script>
<div id="myid"></div>
这种方法有两个好处:
答案 1 :(得分:0)
您可以只包含脚本...在处理时生成div并为其分配唯一ID。 (在该逻辑中,您可以检查重复项)
假设您不希望您的小部件被包含在1,000次中......这样的事情(未经测试)应该有效。
var uniqueID;
var foundUniqueID = false;
var idx = 0;
while(foundUniqueID != true){
uniqueID = 'myID_' + idx;
if(document.getElementById(uniqueID)){
idx++;
} else {
foundUniqueID = true;
}
}
//create your DIV with your uniqueID etc.