2016-05-18 151 views
1

私は以下のコードを持っています。要するに、ユーザーが "All On"ボタンをクリックすると、yahoo.comのポップアップウィンドウが開きます。ウィンドウを3秒間開いたままにしておき、ユーザーからの追加の操作がなくても自動的に閉じます。JavaScriptが自動的にポップアップウィンドウを閉じる

ポップアップは希望どおりに開きますが、クローズを実行しようとするとこのエラーが発生します。

script438:オブジェクトは、私はコーダではないですし、これを把握することはできません「閉じる」 lights.html(11,31)

のプロパティまたはメソッドをサポートしていません。最終的には、主にSafari iOSで実行されます。そして、明らかに、ヤフーリンクは特定のIPアドレスに置き換えられます。ありがとうございました。

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Light Control Example</title> 
    <script type="text/javascript"> 
    function allOn(){ 
    var win = 'http://www.yahoo.com'; 

     open(win,'1366002941508','width=1,height=1,left=5,top=3'); 

     setTimeout(function() { win.close();}, 3000); 
    } 
    </script> 
</head> 
<body> 
    <h1>Lights Example</h1> 

    <input type=submit value="ALL ON" onclick="allOn();" /> 

</body> 
</html> 
+2

を試してみてくださいこれを与える - それは、文字列「'のhttpです:// WWW .yahoo.com'。このようにウィンドウを閉じることが可能かどうかはわかりませんが、特にモバイルの場合は、新しいウィンドウではなくオーバーレイdivを作成する方がよいでしょう。 –

+0

スクリプトを使用して独自のウィンドウを閉じることはできなくなりました。https://stackoverflow.com/a/19768082/391101 – harvest316

答えて

1

win`が文字列 ``ためである)あなたは `win.closeを(呼び出すことはできません理由

<script type="text/javascript"> 
function allOn(){ 
    var win = window.open('http://www.yahoo.com','windowname','width=1,height=1,left=5,top=3'); 
    setTimeout(function() { win.close();}, 3000); 
} 
</script> 
1

winは文字列です。
文字列には明らかにclose()メソッドがありません。

open()によって返されるWindowオブジェクトを必要とします。

0
<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Light Control Example</title> 
    <script type="text/javascript"> 
    function allOn(){ 
    var myWindow = window.open('http://www.yahoo.com','1366002941508','width=600,height=400,left=5,top=3') 
    setTimeout(function() { myWindow.close();}, 3000); 
    } 
    </script> 
</head> 
<body> 
    <h1>Lights Example</h1> 

    <input type=submit value="ALL ON" onclick="allOn();" /> 

</body> 
</html> 
関連する問題