InnerHTML没有'我不在FF工作
InnerHTML doesn't work in FF?
我对Javascript和与web相关的基本内容都很陌生编码。我在FF中使用InnerHTML有一个简单的问题,希望你能帮帮我。
我使用的代码应该会生成一个简单的html输入行,在IE中,它运行良好(尽管当我加载它时,我会得到"我应该在顶部启用activeX消息(,但在FF中它根本不起作用,我可以看看它在页面上的来源,但它没有显示任何东西。。。
<div id="mainDiv"></div> <script type="text/javascript"> var siteBoxes = '<form action=HTMLPage.htm name="myform">'; for (var i = 0; i < arr1.length; i++) { siteBoxes += '<INPUT TYPE="checkbox" id="box'+i+'"
VALUE="'+arr1[i]+'"/>+arrNames[i]+'
';}siteBoxes+=";document.getElementById("mainDiv"(.innerHTML=站点框;我确信这是一个简单的解决方案,我试着在网上搜索,但是我已经没有力气了,我希望你们这些善良的人可以帮我。
提前感谢!!!
好的,问题在于头中的数组定义我刚刚注意到,在FF的错误控制台中,我收到一条消息,说arr1是未定义的,但事实确实如此,我甚至尝试将它移动到主体,但它没有改变,仍然未定义。。。它在IE中工作。
它可能与数组定义有关吗?它与IE和FF不同吗???
var arr1 = new Array(
"http://www.google.com",
"http://www.yahoo.com",
"http://www.cnet.com",
"http://www.google.ar/search?q="
);
同样,它在IE中工作得很好,但在FF
我第一眼就注意到了一些事情。
<div id="mainDiv"></div>
<script type="text/javascript">
var siteBoxes = '<form action="HTMLPage.htm" name="myform">';//put quotes around page
for (var i = 0; i < arr1.length; i++) {
siteBoxes += '<INPUT TYPE="checkbox" id="box'+i+'" VALUE="'+arr1[i]+'"'/>
'+arrNames[i]+'<br '/><br '/>';
}
siteBoxes += '<'/form>';
document.getElementById("mainDiv").innerHTML=siteBoxes;
arr1从未声明过,至少从您提供给我们的代码中是这样。
适用于Opera、IE和FF。
尝试取消对输出的捕获;
document.getElementById("mainDiv").innerHTML = unescape(siteBoxes);
脚本标记中的结束引号有问题。如果我删除它并键入一个新的,代码就会工作。
您的代码的其余部分一定有问题,因为当我更改它时。它运行良好。
<html>
<head>
</head>
<body>
<div id="mainDiv"></div>
<script type="text/javascript">
var arr1 = new Array();
var arrNames = new Array();
arr1[0] = "test";
arrNames[0] = "nameTest";
var siteBoxes = '<form action=HTMLPage.htm name="myform">';
for (var i = 0; i < arr1.length; i++) {
siteBoxes += '<INPUT TYPE="checkbox" id="box'+i+'" VALUE="'+arr1[i]+'"/> '+arrNames[i]+'<br /><br />';
}
siteBoxes += '</form>';
document.getElementById("mainDiv").innerHTML = siteBoxes;
</script>
</body>
</html>
这里可能有一种更干净的实现方式(也可以参见代码中的注释(:
//You can use the simple way of creating an array, and instead of having two
//arrays that represent the names and urls, just make a single array of JSON
var sitesArray = [
{siteName: "Google",siteUrl:"http://www.google.com"},
{siteName: "Yahoo",siteUrl:"http://www.yahoo.com"},
{siteName: "CNET",siteUrl:"http://www.cnet.com"},
{siteName: "Google Search",siteUrl:"http://www.google.ar/search?q="}
];
//Create an ouput array where you'll compile your html
var outputArray = [];
//Now loop through sitesArray and push the strings onto the ouputArray
for (var i=0,len=arr1.length;i < len;++i) {
outputArray.push("<input type='"checkbox'" id='"box",i,"'" ",
"value="'",sitesArray[i].siteUrl,"'" /> ",
sitesArray[i].siteName,"<br /><br />");
}
document.getElementById("mainDiv").innerHTML = outputArray.join("");
建议这样做的主要原因是字符串串联可能非常慢,尤其是当您有很多长字符串时。在Firefox中这并不是一个大问题,但在IE中这绝对是一个问题。因此,将字符串推到数组上,然后在最后加入它们会给你带来更好的性能。
- jQuery Datepicker可以在Safari中工作,但不能在FF或Chrome中工作
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- jQuery$.post可以在chrome、safari中工作,但不能在FF中工作(声明成功回调函数未定义)
- 可以'我没有集中精力在FF工作
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- jQuery不在Chrome中运行,在FF中工作
- window.location在IE9和FF中的工作方式不同
- 在<a>IE和FF不工作
- PHP/JavaScript 检查/取消检查在 FF 中工作,但在 IE 中不起作用
- Cookie不是在Safari,ios中设置的,而是在ie,ff,chrome中工作
- event.preventDefault();停止在FF工作
- 用于<脚本>在FF工作,而不是IE
- jQuery类更改未在IE中触发?镀铬/FF工作符合设计要求
- Dojo xrget-sync:true调用冻结IE UI,而FF工作正常
- InnerHTML没有'我不在FF工作
- jQuery ajaxSend()在FF工作,但不是Chrome
- jQuery不需要的排序数组输出在Chrome和IE (FF工作良好)
- 第二个Javascript表单POST在Chrome浏览器失败,在IE和FF工作
- 无法在Chrome上显示预填充的输入值- FF工作正常
- 选项OnClick在IE中不工作?但是在FF工作