0

私はこの投稿を読んで、同じことをしようとしていますが、うまくいきません。サーバー上の私のjavascriptファイル「myscript.js 」は

/*var win;
function openWindow(){
 win = */

window.open("http://www.yahoo.com","","menubar=no,toolbar=no,width=400,height=600");

/*}

function closeWindow(){
win.close();
}*/

サーバーは実サーバーであり、ローカル ホスト サーバーではありません。

ファイルへのフル パスはhttp://eddyfreeman.woelmuis.nl/myscript.js で、ローカル コンピューターから次のページを実行しようとしています。これにより、javascript ファイルが次のページから新しいウィンドウを開くようになります::

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/Javascript">
<!--
  document.write("<script type='text/javascript' src='" + document.location.protocol + "://www.eddyfreeman.woelmuis.nl/myscript.js'></script>"); 

    //-->
</script>
</head>

<body>
<h1>PAGE TESTING</h1>
</body>
</html>

しかし、それは機能していません。テキストの前にウィンドウが開くのではなく、テキスト TESTING PAGE しか表示されません。

私は何を間違っていますか?

4

4 に答える 4

1

プロトコルの相対 URLを使用document.writeし、スクリプト タグの追加には使用しないでください。

<script type='text/javascript' src='//www.eddyfreeman.woelmuis.nl/myscript.js'></script>
于 2012-11-21T18:41:28.933 に答える
0
var url = window.location.protocol + "//www.eddyfreeman.woelmuis.nl/myscript.js";
document.write("<script type='text/javascript' src='" + url + "'></scr"+"ipt>");​

http://jsfiddle.net/6STLc/1/

いくつかのこと。

protocolコロンが含まれます。だから、良くないwindow.location.protocol + "://foo.com"収量。"http:://foo.com

</script>次に、文字列であっても、JavaScriptのブロックに文字が表示される場合は注意が必要です。DOMパーサーはそれに気づき、スクリプトタグを閉じていると見なします。ステートメントまたは文字列の途中にいる場合、これは明らかに悪いことです。この問題を回避するために、終了スクリプトタグを2つの文字列に分割するのが一般的です。

そして、の使用は避けてくださいdocument.write、しかし私は私の答えではそれには入りません。

于 2012-11-21T18:48:51.303 に答える
0

あなたは、起こるように言っていない何かが起こることを期待しています。まず、document.write を使用して、不適切なスクリプトを含めています。これは、読み込みが既に行われていることを意味し (これは document.write 部分です)、スクリプトに含まれるものを解析することはできません。このようにしたい場合は、代わりに関数を使用する必要があります。

スクリプト ファイル内:

function openWindow() {
    window.open("http://www.yahoo.com","","menubar=no,toolbar=no,width=400,height=600");
}

あなたのhtmlファイルで:

<body onload="openWindow()">

ただし、これを行うには jQuery を使用した方がよいでしょう。ただし、これは JavaScript のコンフォート ゾーンから少し外れている可能性があります。

于 2012-11-21T18:41:23.153 に答える
0

document.location.protocol を「http」に変更するだけです

于 2012-11-21T18:39:17.337 に答える