我在一个外部javascript文件中创建了一个元素:
var element = document.createElement('div');
现在,我需要将元素附加到正文中,并保留对它的引用(element
变量)。
但是我需要把它添加到脚本标记后面--就像document.write()
一样。
我不能为脚本和元素本身使用classes和id-我不在我的网站上,可能有不止一个这样的脚本。
如何解决这样的任务?
上下文:我想建立一些小工具,可以在其他网站上使用。
发布于 2012-03-28 11:37:34
这样如何:
if(typeof globalScriptCounter === "undefined")
var globalScriptCounter = 1;
else
globalScriptCounter++;
var scripts = document.getElementsByTagName("script");
var localCounter = 0;
for(var i = 0; i < scripts.length; i++) {
if(scripts[i].src === "yourwidget.js") { // You should know the path since it is your widget
localCounter++;
if(globalScriptCounter === localCounter) {
document.body.insertBefore(element, scripts[i]);
break;
}
}
编辑:我编辑了我的代码。试试看!
发布于 2012-03-28 11:29:36
仅仅创建元素是不够的。使用document.body.insertBefore、document.body.appendChild等函数将其添加到页面元素列表中。
示例函数
function addElement()
{
// create a new div element
// and give it some content
newDiv = document.createElement("div");
newContent = document.createTextNode("Hi there and greetings!");
newDiv.appendChild(newContent); //add the text node to the newly created div.
// add the newly created element and it's content into the DOM
my_div = document.getElementById("org_div1");
document.body.insertBefore(newDiv, my_div);
}
参考:from mozilla
发布于 2012-03-28 11:36:03
当您创建新元素时,您会将其分配给某个variableName。因此,您可以使用变量名本身来引用变量。
https://stackoverflow.com/questions/9906392
复制