Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果在新窗口中打开,则选中的输入类型收音机不工作_Javascript_Html_Radio Button_Window.open - Fatal编程技术网

Javascript 如果在新窗口中打开,则选中的输入类型收音机不工作

Javascript 如果在新窗口中打开,则选中的输入类型收音机不工作,javascript,html,radio-button,window.open,Javascript,Html,Radio Button,Window.open,我的计划是点击link.html页面中的按钮(exp:Check option 2 in radio.html), 它将转到radio.html页面并选中选项2 radio。 我可以通过单击radio.html页面中的按钮来检查收音机。 但是如果单击link.html上的按钮,我在打开radio.html页面时无法检查收音机。 我的想法是使用windows.open打开radio.html,然后使用window.onload&document.getElementById检查收音机。 但失败了。

我的计划是点击link.html页面中的按钮(exp:Check option 2 in radio.html), 它将转到radio.html页面并选中选项2 radio。
我可以通过单击radio.html页面中的按钮来检查收音机。
但是如果单击link.html上的按钮,我在打开radio.html页面时无法检查收音机。
我的想法是使用
windows.open
打开radio.html,然后使用
window.onload
&
document.getElementById
检查收音机。
但失败了。我的想法错了吗?
请帮忙,TQVM。

以下是radio.html代码:


选择1
选择2
选择3
选择4


选择选项1
勾选选项2
选择选项3
选择选项4
函数检查1(){ document.getElementById(“opt1”).checked=true; } 函数检查2(){ document.getElementById(“opt2”).checked=true; } 函数检查3(){ document.getElementById(“opt3”).checked=true; } 函数检查4(){ document.getElementById(“opt4”).checked=true; }
最简单的方法似乎是将事件侦听器添加到您正在打开的窗口中,以便在加载时可以触发代码。下面的示例将打开此当前SO页面,并将内容替换为单词
test
(您必须从控制台运行此操作,因为代码段似乎无法打开新窗口):

下面是代码的修改版本,它利用了相同的行为。我还将其简化为一个功能,其中按钮现在传递一个表示要勾选复选框的数字,而不是具有多个功能:

<html>
<body>
<button onclick="opencheck(2)">Check Option 2 in radio.html</button>
<br>
<button onclick="opencheck(3)">Check Option 3 in radio.html</button>
<br>

<script>
function opencheck(num) {
  var mywindow = window.open("radio.html");
  mywindow.addEventListener('load', function() {
    mywindow.document.getElementById("opt" + num).checked = true;           
  }
}
</script>
</body>
</html>

选中radio.html中的选项2

选中radio.html中的选项3
函数opencheck(num){ var mywindow=window.open(“radio.html”); mywindow.addEventListener('load',function(){ mywindow.document.getElementById(“opt”+num).checked=true; } }
您是否尝试过使用
mywindow.document.getElementById
?我相信只要说document就会引用当前窗口的文档。我已经尝试过将
mywindow.document.getElementById(“opt3”).checked=true;
放入
mywindow.onload=function()
,但仍然无法获得它。我尝试过,但在我添加
addEventListener
后它没有打开radio.html。但它给了我一个想法。我尝试对它进行一些研究。谢谢。我通过在新窗口或新选项卡中打开“radio.html”成功获得它,它工作正常,没有addEventListener。代码是:
var mywindow=window.open(“radio.html”,“mywindow1”);mywindow.document.getElementById(“opt”+3).checked=true;}
但是我希望在同一个窗口中打开,你知道吗?你描述的是一个重定向。问题是,一旦你加载一个新页面,所有的代码执行就会停止,这不允许你用这种方式做你想做的事情。最简单的方法是在URL中传递一个查询参数,然后用它来修改t是否已检查,但这可能需要您做一些额外的研究。很抱歉延迟回复。谢谢您的评论,我理解您的意思。
<html>
<body>
<button onclick="opencheck(2)">Check Option 2 in radio.html</button>
<br>
<button onclick="opencheck(3)">Check Option 3 in radio.html</button>
<br>

<script>
function opencheck(num) {
  var mywindow = window.open("radio.html");
  mywindow.addEventListener('load', function() {
    mywindow.document.getElementById("opt" + num).checked = true;           
  }
}
</script>
</body>
</html>