2017-04-05 60 views
0

我的計劃是在link.html頁面中點擊按鈕(exp:檢查radio.html中的選項2), 它將轉至radio.html頁面並檢查選項2收音機。
我可以通過點擊radio.html頁面上的按鈕來檢查收音機。
但是,如果點擊link.html上的按鈕,打開radio.html頁面時我無法檢查收音機。
我得到一個想法是使用windows.open打開radio.html,然後使用window.onload & document.getElementById來檢查收音機。
但失敗。我的想法錯了嗎?
請幫助,TQVM。

這裏是radio.html代碼:輸入類型收音機檢查不工作,如果在新窗口中打開

<html> 
 
<body> 
 
<input type="radio" name="option" id="opt1"> \t \t 
 
<label for="opt1">Option 1</label> \t 
 
<input type="radio" name="option" id="opt2">  \t \t \t \t 
 
<label for="opt1">Option 2</label> 
 
<input type="radio" name="option" id="opt3">  \t \t \t \t 
 
<label for="opt1">Option 3</label> 
 
<input type="radio" name="option" id="opt4">  \t \t \t \t 
 
<label for="opt1">Option 4</label> 
 
<br> 
 
<br> 
 
<button onclick="check1()">Check Option 1</button> 
 
<br> 
 
<button onclick="check2()">Check Option 2</button> 
 
<br> 
 
<button onclick="check3()">Check Option 3</button> 
 
<br> 
 
<button onclick="check4()">Check Option 4</button> 
 
<br> 
 

 
<script> 
 
function check1() { 
 
    document.getElementById("opt1").checked = true; 
 
} 
 
function check2() { 
 
    document.getElementById("opt2").checked = true; 
 
} 
 
function check3() { 
 
    document.getElementById("opt3").checked = true; 
 
} 
 
function check4() { 
 
    document.getElementById("opt4").checked = true; 
 
} 
 
</script> 
 
</body> 
 
</html>


這裏是link.html代碼:

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

 
<script> 
 
function opencheck2() { 
 
\t var mywindow = window.open("radio.html","_self"); 
 
\t mywindow.onload = function(){ 
 
\t \t document.getElementById("opt2").checked = true; \t \t \t 
 
\t } 
 
} 
 
function opencheck3() { 
 
\t var mywindow = window.open("radio.html","_self"); 
 
\t mywindow.onload = function(){ 
 
\t \t document.getElementById("opt3").checked = true; \t \t \t 
 
\t } 
 
} 
 
</script> 
 
</body> 
 
</html>

+0

您是否嘗試過使用'mywindow.document.getElementById'?我相信只是說文檔會引用當前窗口的文檔。 – BenShelton

+0

我已經嘗試把'mywindow.document.getElementById(「opt3」)。checked = true; 'mywindow.onload = function()'中的'\t',但仍然無法獲取它。 – Chong

回答

0

做到這一點的最簡單方法似乎是將一個事件監聽器添加到該窗口你打開這樣,當它加載時,代碼可以被觸發。這裏,將打開此電流,使網頁和替換字的內容的例子test(你就必須從控制檯運行此作爲代碼片段似乎無法打開新窗口):

var mywindow = window.open(document.URL); 
mywindow.addEventListener('load', function() { 
    mywindow.document.getElementById('content').innerText = '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> 
+0

我試過了,但是在添加'addEventListener'後沒有打開radio.html。但它給了我一個主意。我嘗試做一些研究。謝謝。 – Chong

+0

我成功通過在新窗口或新標籤中打開「radio.html」,它工作正常,沒有addEventListener。代碼是:'var mywindow = window.open(「radio.html」,「mywindow1」); mywindow.document.getElementById(「opt」+ 3).checked = true; '但是我希望在同一個窗口中打開任何想法? – Chong

+0

你描述的是一個重定向。問題是隻要你加載一個新頁面,所有的代碼執行就會停止,這不允許你以這種方式做你想做的事情。最簡單的方法是在URL中傳遞查詢參數,然後使用它來修改或不選中,但這可能需要您進行額外的研究。 – BenShelton