2

我有一个函数 openWindow(word) 在单击按钮时被调用。此函数打开一个新窗口,打印单词并显示一个名为 do 的按钮。openWindow 函数一直工作,直到它的标签中的 onclick 应该找到 do 函数。我的问题是 onclick 似乎永远找不到我的 do 功能。我该怎么办?

我做的功能:

 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>
4

3 回答 3

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;

这是一个工作小提琴(确保没有阻止弹出窗口)。

于 2013-04-04T18:42:08.150 回答
0

do函数不是您创建的新窗口的一部分,因此无法找到。

您需要通过链接的 JavaScript 文件或内联来包含它。

于 2013-04-04T18:41:38.507 回答
0

您的新窗口没有函数定义来知道调用“do()”时要做什么。

如果您只是想要一个带有按钮的警报:

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

否则,詹姆斯希尔还有路要走。

于 2013-04-04T18:44:06.093 回答