嘿,我创建一个带有id和eventListener的Element。所以,当我点击链接时,我想获得ID。
但是我没有控制这个创建的元素。 “无法设置null的属性”。
function insertLink(text,link,window,underline)
{
var doc = document.getElementById("iframe_editor").contentWindow.document;
var sel = doc.getSelection();
var count = parseInt(document.getElementById("counter").value);
if (sel.rangeCount > 0)
{
count ++;
document.getElementById("counter").value = count;
var range= sel.getRangeAt(0);
myParent=document.getElementById("iframe_editor").contentWindow.document.body;
alink=document.createElement("a");
var text = document.createTextNode(document.getElementById("linktext").value);
alink.href = document.getElementById("linkhref").value;
alink.id = "testid"+count;
alink.appendChild(text);
myParent.appendChild(alink);
range.insertNode(alink);
alink.addEventListener( 'click', function(){
loadElement(count.toString());
},count );
}
}
function loadElement(t)
{
alert(t);
document.getElementById("testid"+t).innerHTML = "<a href = ''>Test</a>";
}
当我检查loadElement中的变量t时,我得到正确的数字。但我不能用innerhtml改变这个元素。
为什么不呢?
答案 0 :(得分:1)
您插入的链接在您的实际网页中不存在,但在您的iframe中。因此,您必须从iframe访问它:
document.getElementById("iframe_editor").contentWindow.document.getElementById("testid"+t).innerHTML = "<a href = ''>Test</a>";