我对Sharepoint有一个奇怪的行为问题。
我正在内容编辑器网络部分测试一些javascript并运行此问题。 在普通HTML页面中动态创建DOM元素时,如下所示,我可以从创建的元素中检索值。
但是,当我在Sharepoint Content Editor Web部件中尝试此操作时,我从SharePoint页面返回JS错误,声明:“0.value1”为null或不是对象。
知道为什么会这样吗?
<head>
<script type="text/javascript">
function WriteElements()
{
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "BLABLA");
input.setAttribute("value1", "ASDFASDFZXCV");
document.getElementById('theUL').appendChild(input);
var i = document.getElementsByName("BLABLA");
alert(i[0].value1);
return;
}
</script>
</head>
<body>
<ul id="theUL"></ul>
<p><input id="Button1" type="button" value="button" onclick="WriteElements();"/></p>
</body>
答案 0 :(得分:0)
我无法确切地告诉你问题是什么。我的猜测是IE不会很快解析DOM,因此document.getElementsByName失败。
这对我有用:
<script type="text/javascript">
function WriteElements() {
var input = document.createElement("input");
input.id = "BLABLA";
input.setAttribute("type", "hidden");
input.setAttribute("value1", "ASDFASDFZXCV");
document.getElementById('theUL').appendChild(input);
var button = document.getElementById("BLABLA");
alert(button.value1);
return;
}
</script>
<ul id="theUL"></ul>
<p><input id="Button1" type="button" value="button" onclick="WriteElements();"/></p>
答案 1 :(得分:0)
事实上,即使您使用上面发布的代码创建“普通”html页面;它不起作用。
value1不是“input”类型对象的属性,它是一个属性,它以不同的方式检索。