![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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ランキング
-
textareaに画像を表示したい
-
重なった画像にクリックイベン...
-
オンマウスで、画像切り替え+...
-
javaを使ってマウスオンでの画...
-
JavaScriptとチェックボックス...
-
1枚の画像をクリックすると複数...
-
javascriptテキストBOX色を元に...
-
MAX関数を使ってからLEFT JOIN...
-
JSPでの画像ファイル表示
-
【OpenCV】二値画像後、白の部...
-
jspでcssが読み込めない
-
C言語のポインタ表現
-
Slick.jsのオプションrtlについて
-
複数画像のランダム複数表示(...
-
getElementByIdの戻り値がnull...
-
jQueryでサーバー上のファイル...
-
キャラクターがぴょこんと飛び...
-
JavaScriptで変更した属性の元...
-
初期状態でテーブルの非表示
-
JQuery UIで、表示したタブの中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
textareaに画像を表示したい
-
Javascriptで指定した日付と時...
-
javascriptで毎月替わる画像
-
画像をフォルダに入れれば表示...
-
画像の重なりの順序を代える方...
-
スワップイメージが上手く動作...
-
JavaScriptとチェックボックス...
-
透過pngの透明部分以外をクリッ...
-
Gifアニメ、最後のコマに行った...
-
bxsliderにて読み込み後に内容...
-
Javascript で共通の処理をどこ...
-
1枚の画像をクリックして複数の...
-
各フォルダから1枚ずつ画像をラ...
-
画像を切り替えランダム表示
-
画像削除機能を付けたい
-
マウス追従スクリプトについて
-
画像ランダム表示、しかしダブ...
-
<table>、もしくは<iframe>内で...
-
1枚の画像をクリックすると複数...
-
画像とテキストのセットをラン...
おすすめ情報