![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
Internet Explorer の右クリックメニュー拡張用スクリプトを作っています。
画像上で右クリックすると画像のサイズが表示されるようにしたいのですが、うまくいきません。
<script type = "text/javascript">
var parentWindow = window.menuArguments;
var eventSource = parentWindow.event.srcElement;
var tagName = eventSource.tagName.toUpperCase();
var URL;
if (tagName == "IMG") {
URL = eventSource.src;
var newImg = new Image();
newImg.src = URL;
alert("画像のサイズは " + newImg.width + "×" + newImg.height);
};
</script>
これにより、たとえばこのOKWaveのページの左上にあるロゴは
画像のサイズは 220 × 54
と表示されますが、
たとえば http://goo.gl/I9bEQf では
画像のサイズは 0 × 0
となってしまいます。
なぜでしょうか?
原因と解決法を教えていただけると嬉しいです。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
これ、「goo.gl/I9bEQf」と実際の画像と、どちらでやってます?
IEで画像見ると、リンクを開いた時の画像のURLと、実際の画像のURLが違うんですが・・・
変数”URL”に、どっちのURLが読み込まれているか確認してみて下さい。
多分「goo.gl/I9bEQf」が入ってるんじゃないかなぁ・・・
CGIやらでContents-Typeを”image/jpeg”でデータ送ってきてるから、ブラウザはJpeg画像として認識してるんだろうけど、「I9bEQf」って、普通に見たら何か分からないファイルですよね?
だから、直接「I9bEQf」見に行って画像じゃないから 0x0 で出してる・・・・と思ってみたり。
この回答への補足
短縮URLはこのページの閲覧者の便宜のために使ったものですが、テストは元URLで行っていますし、他の様々なサイト・画像でも行っています。したがって当方が問題にしている現象は短縮URLとは無関係です。
補足日時:2014/05/01 00:52No.1
- 回答日時:
画像の読み込みが完了する前に、alertが実行されているのではないでしょうか。
newImgのonloadイベントで、alertを実行するようにしてみてはいかがでしょうか?
この回答への補足
ご回答ありがとうございます。
ご指摘のとおり onload を使ってみましたが、
<script type = "text/javascript">
var parentWindow = window.menuArguments;
var eventSource = parentWindow.event.srcElement;
var tagName = eventSource.tagName.toUpperCase();
var URL;
if (tagName == "IMG") {
URL = eventSource.src;
var newImg = new Image();
newImg.src = URL;
newImg.onload = function() {
alert("画像のサイズは " + newImg.width + "×" + newImg.height);
}
};
</script>
と書いたところ、どの画像でも正常に動作しない(alert が出ない)という結果になりました。
これを修正して
<script type = "text/javascript">
var parentWindow = window.menuArguments;
var eventSource = parentWindow.event.srcElement;
var tagName = eventSource.tagName.toUpperCase();
var URL;
if (tagName == "IMG") {
URL = eventSource.src;
var newImg = new Image();
newImg.onload = function() {
alert("画像のサイズは " + newImg.width + "×" + newImg.height);
}
newImg.src = URL;
};
</script>
と、newImg.src = の行を後に持ってくると、
onload を使わない当初のスクリプトでサイズが表示されていた画像では正しく動作しましたが、
onload を使わない当初のスクリプトでサイズが表示されなかった画像では alert が出ない
という結果になりました。
ということで未解決のままです。
onload とは別の要因があるのでしょうか?
なお、テスト環境の IE のバージョンは IE11 です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックで背景変更するタグ
-
JavaScript で flexslider の画...
-
VB2005 でビットの深さ8の画像...
-
image.onload = .. の後に imag...
-
右クリック禁止スクリプト挿入法
-
JavaScript スライドの画像にリ...
-
スライドショー作成方法。
-
JavaScriptのOff
-
一定日本時間で画像変更 Java S...
-
Photoswipeのアニメーションの変更
-
2種類できますか?
-
時間で画像表示が変化する方法
-
ロールオーバーで切り替えられ...
-
バナー広告のように表示させた...
-
どの<li><a> が押されたか判別...
-
マウスオーバーのメニューについて
-
「jQuery」アコーディオンメニ...
-
jqueryのsortableで一部ソート...
-
画像の表示位置
-
jQueryで画像を重ねる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
textareaに画像を表示したい
-
JavaScript スライドの画像にリ...
-
HTMLで条件分岐はできますか?
-
画像ランダム表示、しかしダブ...
-
bxsliderにて読み込み後に内容...
-
画像を切り替えランダム表示
-
1枚の画像をクリックすると複数...
-
Gifアニメ、最後のコマに行った...
-
画像の重なりの順序を代える方...
-
小窓について教えて下さい。
-
スライダーを実装した場合、ペ...
-
スワップイメージが上手く動作...
-
USEMAPでの指定区域にマウスオ...
-
1枚の画像をクリックして複数の...
-
クリッカブルマップの一部分だ...
-
オンマウスで、画像切り替え+...
-
iframe内のリンク文字のマウス...
-
edgeでスクロールバーに色が表...
-
画像の上に画像リンクを貼る方法
-
prettyphotoの画像表示について
おすすめ情報