2013-04-04 42 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')"; 

否则,詹姆斯山有路来走。