如何在新窗口(window.open())中编写JavaScript?

如何在新窗口(window.open())中编写JavaScript?,javascript,Javascript,对于JavaScript分配,我将使用window.open()创建一个新窗口。此窗口将使用document.write()填充内容。该窗口必须具有使用JavaScript更改窗口中文本大小的按钮 我的问题是,如何在这个新窗口中使用或编写JavaScript,以便调整窗口文本的大小 下面是我的代码的一个简短版本(存储在外部js文件中): var新窗口; 函数displayWindow(){ newWindow=window.open(“,”newWindow“,”宽度=800,高度=600”)

对于JavaScript分配,我将使用window.open()创建一个新窗口。此窗口将使用document.write()填充内容。该窗口必须具有使用JavaScript更改窗口中文本大小的按钮

我的问题是,如何在这个新窗口中使用或编写JavaScript,以便调整窗口文本的大小

下面是我的代码的一个简短版本(存储在外部js文件中):

var新窗口;
函数displayWindow(){
newWindow=window.open(“,”newWindow“,”宽度=800,高度=600”);
newWindow.document.write('-Text size+');
newWindow.document.write('这里是一些我希望能够调整大小的文本');
}
函数resizeText(更改){
开关(更换){
案例1:
newWindow.document.style.fontsize=“80%”;
打破
案例2:
newWindow.document.style.fontsize=“120%”;
打破
违约:
警报(“错误”);
打破
}
}
标记-

如果弹出窗口未被阻止,下面的示例将起作用。这只是你可以做到这一点的众多方法之一。注意,它使用“opener”调用父窗口中的函数,然后更改正文的字体大小。您的代码正在尝试设置文档的字体大小,这不是您想要的,即,它不会做任何事情。还要注意,fontSize区分大小写,如果使用“fontSize”,则不会发生任何情况。最后,在设置正文字体大小时不要使用百分比,因为它不会像您预期的那样工作。而是使用像素。无论如何,这应该足够让你走了,我会把细节留给你

<html>
<body onload="init()">
<h2>Parent Window</h2>
 <script type="text/javascript">

     var popup;

     function init() {
        popup =  window.open("", "newWindow", "width=800, height=600");
        if (popup) popup.document.write('<html><body>Child Window<br><button onclick="opener.fontSize(48)">Test</button></body></html>'); 
     }

     function fontSize(size) {
         popup.document.body.style.fontSize = size + 'px';
     }

</script>
</body>
</html> 

父窗口
var弹出窗口;
函数init(){
弹出窗口=窗口。打开(“,”新窗口“,”宽度=800,高度=600”);
if(弹出)popup.document.write(“子窗口
测试”); } 函数大小(大小){ popup.document.body.style.fontSize=大小+px'; }
此代码基于您已有的内容工作:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script language="JavaScript" type="text/javascript">
var newWindow;

function displayWindow() {
  newWindow = window.open("", "newWindow", "width=800, height=600");

var windowInsertVar = '';
    windowInsertVar += '\x3Cscript>';
    windowInsertVar += 'function resizeText(change) {';
    windowInsertVar += 'switch (change) {';
    windowInsertVar += 'case 1:';
    windowInsertVar += 'document.getElementById(\'textToBeResized\').style.fontSize = "80%"\;';
    windowInsertVar += 'break\;';
    windowInsertVar += 'case 2:';
    windowInsertVar += 'document.getElementById(\'textToBeResized\').style.fontSize = "120%"\;';
    windowInsertVar += 'break\;';
    windowInsertVar += 'default:';
    windowInsertVar += 'alert(\'Error\')\;';
    windowInsertVar += 'break\;';
    windowInsertVar += '}';
    windowInsertVar += '}';
    windowInsertVar += '\x3C/script>';
    windowInsertVar += '<button onclick="resizeText(1)">-</button> Text size <button onclick="resizeText(2)">+</button>)\;';
    windowInsertVar += '<div id="textToBeResized">Here is some text that I would like to be able to be resized.</div>';

    newWindow.document.write(windowInsertVar);
}
</script>

</head>

<body>
<button id="displayWindow" onClick="displayWindow();">Display Window</button>
</body>
</html>

无标题文件
新窗口;
函数displayWindow(){
newWindow=window.open(“,”newWindow“,”宽度=800,高度=600”);
var windowInsertVar='';
windowInsertVar+='\x3Cscript>';
windowInsertVar+='函数大小文本(更改){';
windowInsertVar+='开关(更改){';
windowInsertVar+=“案例1:”;
windowInsertVar+=“document.getElementById(\'textToBeResized\”).style.fontSize=“80%”;
windowInsertVar+=“中断\;”;
windowInsertVar+=“案例2:”;
windowInsertVar+=“document.getElementById(\'textToBeResized\”).style.fontSize=“120%”;
windowInsertVar+=“中断\;”;
windowInsertVar+=“默认值:”;
windowInsertVar+=“警报(\'Error\')\;”;
windowInsertVar+=“中断\;”;
windowInsertVar+='}';
windowInsertVar+='}';
windowInsertVar+='\x3C/script>';
windowInsertVar+='-文本大小+\;';
windowInsertVar+='这里是一些我希望能够调整大小的文本';
newWindow.document.write(windowInsertVar);
}
显示窗口

如果您没有关闭
开关
语句,您忘记了出现一个
}
显示您正在尝试调用父窗口中的函数,但该函数不起作用。尝试将您的按钮更改为“opener.resizeText(1)”。请看:@vihan1086感谢您指出这一点,我已经在中编辑了它。不幸的是,这不是问题所在problem@Robert我刚刚给出了一个go-我现在可以访问该函数,但是文本仍然没有调整大小。我已经在switch语句中放置了警告框,它们正在显示,所以函数访问似乎是正常的。下一步是找到正确的DOM以获取属性。谢谢你的帮助!我试着给你举个例子。非常感谢你花时间做这件事。我现在让它工作了。我还注意到我没有在DOM中添加“body”,也没有在“fontSize”中大写“S”。这也是一个很好的答案,因为它显示了另一种解决方案,即将函数移动到子窗口。