2013-04-04 68 views
2

我有一個函數openWindow(單詞),單擊按鈕時會被調用。此功能打開一個新窗口,打印該單詞並顯示一個名爲do的按鈕。 openWindow函數可以運行,直到標籤中的onclick應該找到do函數。我的問題是,onclick似乎從來沒有找到我的功能。我該怎麼辦?在javascript標籤中使用onclick函數

我做功能:

function do() { 
    alert("Life is what you make of it"); 
} 

我的openWindow功能:

function openWindow(word) { 
     myWindow.document.write(word); 
     myWindow.document.write('<body>'); 
     myWindow.document.write('<input type="button" value="Do" onclick="do()">'); 
     myWindow.document.write('</body>'); 
    }  
    } 

我的HTML代碼以打開窗口:

<body> 
    <input type="button" value="Submit" onclick="openWindow()"> 
</body> 
+0

'do'是JS中的保留關鍵字。你怎麼沒有得到錯誤?我嘗試了jsfiddle。我收到意外的令牌錯誤。 – Adi 2013-04-04 18:53:09

回答

1

do()在新的彈出窗口中不存在。我建議使用這種方法:

myWindow.document.write('<body>'); 
myWindow.document.write('<input type="button" value="Do" onclick="do()">'); 
myWindow.document.write('</body>'); 

// Define "Do" in the context of the new window 
// Note: I have changed "do" to "Do" because "do" is a reserved word in JS 
myWindow.Do = Do; 

這裏是a working fiddle(確保未阻止彈出窗口)。

+1

這很有效,非常感謝。 – user2162882 2013-04-04 19:30:50

0

do功能是不是新窗口的一部分你已經創建了,所以無法找到它。

您需要通過鏈接的JavaScript文件或內聯來包含它。

0

當您調用「do()」時,您的新窗口沒有函數定義來知道該怎麼做。

如果你只是想有一個按鈕,警報:

myWindow.document.write('<input type="button" value="Do" onclick="alert('Life is what you make of it')"; 

否則,詹姆斯山有路來走。