ボタンを押したらjQueryが使えるページを新規で開くように以下のようなソースを書いてみました。
-----------------------------------------------------------------------------------------
<input type="button" value="test" onclick="test()" />
<script type="text/javascript">
function test(){
var newWindow=window.open();
newWindow.document.open();
newWindow.document.writeln('<p>test</p>');
newWindow.document.writeln('<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"><\/ …
newWindow.document.writeln('<p>test</p>');
newWindow.document.writeln('<p>test</p>');
newWindow.document.writeln('<p>test</p>');
newWindow.document.close();
}
</script>
-----------------------------------------------------------------------------------------
ところが、これだとOperaではうまくいきません。
「要素を検証」してみたところ、</script>以下がwritelnされていないようです。
src="~" の~部分を消してみると以下はきちんと書き込まれるのですが、それだとjsファイルを読み込むことができません。
</script>以外にもエスケープさせねばいけない所があるのでしょうか?
それとも原因は他にあるのでしょうか?
教えていただければありがたく思います。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#2 です。
ポップアップブロックの可能性も考えましたが、やはり Opera 11.60 では動作しないようですね。
http://jsfiddle.net/GBBdD/1/
第二引数まで指定してやれば Opera 11.60 でも動作しました。
http://jsfiddle.net/GBBdD/2/
ただし、アドレスバーの表示がおかしい。
"about:blank" であるべきなのに "http://fiddle.jshell.net/GBBdD/2/show/" と表示されています。
何なんでしょうね…。
ありがとうございます!
>第二引数まで指定してやれば Opera 11.60 でも動作しました。
>http://jsfiddle.net/GBBdD/2/
確かに動きました!ありがとうございます。
それにしても、またバージョンアップで変わりそうな気がしますが、、、(^^;
No.2
- 回答日時:
XHTMLなら <>& をエスケープする必要がありますが、document.write を使っているので関係なさそうですね。
document.write(['\x3Cp\x3Etest\x3C/p\x3E',
'\x3Cscript type="text/javascript" src="jquery-latest.min.js"\x3E\x3C/script\x3E',
'\x3Cp\x3Etest\x3C/p\x3E',
'\x3Cp\x3Etest\x3C/p\x3E',
'\x3Cp\x3Etest\x3C/p\x3E'].join(''));
> ところが、これだとOperaではうまくいきません。
そもそも、window.open() が働いていないように見受けられます。(Opera 11.60で確認)
http://jsfiddle.net/GBBdD/
window.open は引数なしで呼び出せる仕様ですが、Opera は準拠してないようですね。引数を指定してみてください。
http://www.whatwg.org/specs/web-apps/current-wor …
> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"><\/ …
http://code.jquery.com/jquery-latest.min.js を読むということは最新の jquery.js 仕様に準拠するよう常に気を配る必要がありますが、大丈夫でしょうか?
予期せぬ更新で既存のスクリプトが動かなくなるリスクがありますが…。
ありがとうございます!
jQueryのバージョンは、サンプルなので、気にしないでください(^^;
>window.open は引数なしで呼び出せる仕様ですが、Opera は準拠してない
んですか。それは知りませんでした。ありがとうございます。
No.1
- 回答日時:
なぜエスケープ?
newWindow.document.writeln('<script ・・・・><'+'/script>');
のようにタグを分割するだけでよいかも
回答ありがとうございます。
wite(ln)の中に</script>を書くと、その外側の<script>が閉じられてしまうので、
対応法として、おっしゃる通りタグを分けるのと、「</」を「<\/」とエスケープにする2通りがあります。
で、いろいろ検証してみたところ、私のOperaはver11.60で、そのどちらの方法もうまくいきませんでした(src=""がなければ大丈夫ですが、、、)
ところが、ver11.51ではうまくいきました。
Operaのバグかもしれません。
どうなんでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カウントダウンとカウントアッ...
-
<a href="#" …>の意味を教えて...
-
ページ全体を検索して特定文字...
-
mailto + 変数名
-
特定のウィンドウ名を持つウィ...
-
JavaScriptの外部ファイル読み込み
-
別ファイルのfunctionの読み込み方
-
ブラウザをJavaScriptで最小化…
-
JavaScriptでiframeの内容を「...
-
インラインフレームで表示され...
-
VBscriptでVisualBasicのような...
-
テキストボックス内にハイパー...
-
新しいウィンドゥを最大化で立...
-
ページを訪問者にたった一度だ...
-
親フレームのURLによって、...
-
processing
-
初心者javascript ウィンドウサ...
-
HTMLでサブフレームから親のス...
-
getElementsByNameで要素が取得...
-
undefinedが表示されてしまう
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptで変数を組み込みたい
-
CGIフォーム一定時間過ぎる...
-
書いたクッキーを読み出してメ...
-
明日の日にちを表示するときは
-
カウントダウンとカウントアッ...
-
動的生成したscriptタグが実行...
-
HTML画面上で文字の大きさを変...
-
¥マークの検索について
-
特定のURLからの訪問者を入室禁...
-
ホームページを見る度にTOP画面...
-
UAによるリダイレクト
-
変数に入れた文字列をindexOfで...
-
HPビルダーで『最終更新日時』...
-
Cookieの回数で閲覧制限、javas...
-
特定URLからの遷移後、指定ULR...
-
ランダム音声と正解・不正解の表示
-
document.getElementById
-
ホームページに定休日のカレン...
-
document.writeの文字列が実行...
-
外部javascriptファイルをjavas...
おすすめ情報