Я создал простой JS-файл с именем formValueOperator.js , содержащий эту функцию:
function setValue(type, obj, value){
if(type == 'text')
{
obj.value = value;
}
и другая HTML-страница, вызывающая эту функцию:
<HTML>
<HEAD>
<title>Simple Test</title>
<script type="text/javascript" src="formValueOperator.js"></script>
<script type="text/javascript">
function setInitValue(){
var element_order_id = document.getElementById("order_id");
setValue('text', element_order_id, 'aaa');
}
</script>
</HEAD>
<BODY>
<FORM name="myform" method="post">
<input type="text" size=20 id="order_id" name="order_id">
</FORM>
<script type="text/javascript">
setInitValue();
</script>
</BODY>
</HTML>
Это довольно простая операция:
Запустить HTML -> вызвать функцию setInitValue () -> поместить 'aaa' в текстовое поле.
Все отлично работает на FireFox (7.0.1). Однако, когда я попытался запустить это на Chrome (14.0.835.202), это не сработало вообще.
Затем я протестировал код, переместив всю setValue функцию из formValueOperator.js и вставил ее на HTML-страницу. Удивительно, но это сработало.
Должно быть что-то подозрительное в том, как Chrome передает объект getElementByID во внешний файл JS.
Может ли кто-нибудь помочь мне в этом?