• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像の別ウィンドでの拡大表示をやりたいが・・・)

画像の別ウィンドでの拡大表示をやりたいが・・・

このQ&Aのポイント
  • 初心者のKootsukiさんは、ブログで画像の別ウィンドでの拡大表示を実現したいと考えています。JavaScriptを使って試みていますが、エラーが発生しているようです。どなたか原因を教えていただけないでしょうか。
  • KootsukiさんのHTMLは、クリックするとlargeImage関数が実行されるようになっています。largeImage関数は、ウィンドウを開いてオリジナル画像を縮小表示するものです。しかし、拡大マーク画像をクリックした際にランタイムエラーが発生しています。
  • どこが間違っているのか分からない状況ですが、おそらくオブジェクトの指定に問題があるのかもしれません。Kootsukiさんは、その原因を解明したいと考えています。

質問者が選んだベストアンサー

  • ベストアンサー
  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

別ウィンドウを開いた場合はウィンドウごとにスクリプトの空間が違います。 要するに、親ウィンドウで定義した関数を使う場合は、そう明示しなければいけません。 親ウィンドウのオブジェクトはparentやらopenerやらで参照できます。 子ウィンドウにfunctionオブジェクトを渡してもいいですが、まだそこまで分からないでしょう・・・ largeImageの出力HTMLより newWin.write('<p><img src="' + lisrc + '" width="100%" onClick="window.close()" alt="クリックするとウィンドゥを閉じます。"><img src="省略/kakudai.jpg"​ onClick="parent.maxImage()" alt="さらに拡大" style="position:absolute; top:10px; left:150px; z-index=2"><\/p>'); >そこがクリックされたら同じウィンドゥを使って window.openを何回も使うならウィンドウ名(openの第2引数)を指定しなければできません。 出力の<img>がHTMLの文法的に汚いです。 属性がスペースなしでつながっていたり、クォーテーションが抜けていたり。 これらもエラーの原因となります。

kootsuki22
質問者

お礼

15mmさん アドバイスありがとうございました。onClick="window.opener.maxImage()" でできました。 アドバイスがなければ「スクリプトの空間が違う」という考えには絶対に行き着いてなくギブアップしていたものと思います。また「属性がスペースなしでつながっていたり、クォーテーションが抜けていたり。」の指摘もありがとうございました。ウィンドウ名も一応固定にして再オープンできるようにしましたが複数画像を表示したい場合などに使い勝手がよくないかも知れません。おいおい改良して行きたいと思います。今回は本当にありがとうございました。なお、数日してこの質問はクローズしたいと思っています。

関連するQ&A