Javascript 无法将getElementByID对象传递到Chrome上的外部JS文件
我创建了一个名为formValueOperator.JS的简单JS文件,其中包含以下函数:Javascript 无法将getElementByID对象传递到Chrome上的外部JS文件,javascript,google-chrome,external,Javascript,Google Chrome,External,我创建了一个名为formValueOperator.JS的简单JS文件,其中包含以下函数: function setValue(type, obj, value){ if(type == 'text') { obj.value = value; } <HTML> <HEAD> <title>Simple Test</title> <script type="text/javascript" src="f
function setValue(type, obj, value){
if(type == 'text')
{
obj.value = value;
}
<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页面:
function setValue(type, obj, value){
if(type == 'text')
{
obj.value = value;
}
<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>
简单测试
函数setInitValue(){
var element_order_id=document.getElementById(“order_id”);
setValue('text',元素顺序id',aaa');
}
setInitValue();
这是一个相当简单的操作:
运行HTML-->调用函数setInitValue()-->将“aaa”放入文本框
在FireFox(7.0.1)上,一切都能完美运行。然而,当我试图在Chrome(14.0.835.202)上运行这个程序时,它根本不起作用
然后,我通过从formValueOperator.js移动整个setValue函数来测试代码,并将其粘贴到HTML页面中。令人惊讶的是,它成功了
Chrome如何将getElementByID对象传递给外部JS文件,这肯定有点可疑
有人能帮我做这个吗 这与启动
setInitValue()
方法的时间有关
当您将方法移出JS文件并移动到文档主体中时,您可能会将方法的执行延迟几毫秒,从而给您选择的元素加载时间
当所有内容都已完成加载时,使用的事件执行代码
$(document).ready(function(){
setInitValue();
}
);
以这种方式尝试,延迟方法执行,直到加载网页:
<FORM name="myform" method="post">
<input type="text" size=20 id="order_id" name="order_id" />
</FORM>
<script type="text/javascript">
window.onload = function() {
setInitValue();
};
</script>
window.onload=函数(){
setInitValue();
};
HTML中没有输入的结束标记,HTML中也不存在自动结束标记。@Jamie Dixon:真的吗?但是这个呢?您显示的页面显示:“在HTML中,标记没有结束标记。在XHTML中,标记必须正确关闭,就像这样。”@Jamie Dixon:没错。谢谢你的警告:)我会更正我的答案。谢谢你的快速回复。然而,经过测试,它在Chrome上仍然不起作用(但在FireFox上起作用)。在你最初的问题中,当你说“它不起作用”时,你的确切意思是什么?你得到了什么错误?没有显示错误,只是一个空白文本框。但当我在FireFox上运行此页面时,它在文本框中显示“aaa”。它是否正在查找您试图选择的元素?抛出一个带有元素\u order\u id的alert或console.log,看看它是否未定义。FireFox的回答似乎是“aaa”值,而Chrome根本没有回应。