SharePoint странное поведение? - PullRequest
       15

SharePoint странное поведение?

0 голосов
/ 19 января 2010

У меня странная проблема с поведением в Sharepoint.

Я тестирую некоторый JavaScript в веб-части редактора контента и столкнулся с этой проблемой.При динамическом создании элементов DOM на обычной странице HTML, как показано ниже, я могу получить значения из созданного элемента.

Однако, когда я пытаюсь сделать это в веб-части редактора контента Sharepoint, я получаю ошибку JSвернуться со страницы SharePoint, заявив: «0.value1» является нулем или не является объектом.

Есть идеи, почему это происходит?

<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>

Ответы [ 2 ]

0 голосов
/ 25 января 2010

На самом деле, даже если вы создадите «обычную» html-страницу с кодом, который вы разместили выше; Это не работает.

значение1 не является свойством объекта типа «вход», это атрибут, и оно извлекается другим способом.

0 голосов
/ 21 января 2010

Не могу точно сказать, в чем проблема. Я предполагаю, что 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>
...