我有一個網頁上的2個框架,左框架正在填充來自JavaScript對象的國家名稱列表。每個國家也是主要對象內的一個對象,並有4個名稱/值屬性。我使用附着在身體的onload以下功能:firefox Javascript document.write(onclick)引用錯誤未定義的函數
function populateList() {
var list = top.frames[0].document;
list.open()
list.write("<h2>Countries</h2><ul>");
for (name in euMem){
if(typeof name !== 'object'){
list.write('<li><a href=\"\" onclick=\"updateFrame(\'' + name + '\');\">' + name + '</a></li>');
}
}
list.write("</ul>");
list.close();
}
當用戶點擊該國的名字之一左其意在運行此函數:
function updateFrame(country) {
var infoFrame = top.frames[1].document;
infoFrame.open();
var size = Object.size(euMem[country]);
infoFrame.writeln("<h1>Information for " + country + "</h1>");
for(prop in euMem[country]){
infoFrame.writeln(prop + " : " + euMem[country][prop] + "<br>");
}
infoFrame.close();
}
這似乎在Chrome上工作正常,但在Firefox上,我得到參考錯誤,指出updateFrame未定義。當我將updateFrame直接硬編碼到HTML中時,它的工作原理並不困難,但是當它使用document.write編寫時,我得到了引用錯誤。
爲什麼不能在Firefox上使用?
編輯: 下面是一個簡單的腳本,我寫來測試這個最基本的版本:
<html>
<head>
<title>InfoPane</title>
<script type="text/javascript">
function test(name){
alert(name);
}
function load(){
document.write("<button onclick='test('John Doe');'>Alert Me!</button>");
}
</script>
</head>
<body onload="load();">
</body>
</html>
以上在Firefox上不工作...
我能得到這個代碼作爲一個基本的例子,但不能擴展到我的代碼上面得到它的功能:
<html>
<head>
<title>InfoPane</title>
<script type="text/javascript">
function test(){
alert(this.name);
}
function load(){
var btn = document.createElement('button');
btn.name = 'John Doe';
btn.onclick = test;
btn.innerHTML = 'Alert Me!';
document.body.appendChild(btn);
}
</script>
</head>
<body onload="load();">
</body>
</html>
1.爲什麼使用框架? 2.你如何嵌入腳本和地點? – 2013-04-30 06:22:23
我使用框架,因爲它是需要我們使用框架的類作業。腳本被嵌入到第一幀的HTML文件中。 – user1721944 2013-04-30 06:50:04