• ベストアンサー

HPにおける画像ガードのかけかたscriptについて

HPを作っていて画像ファイルのDL禁止のために次の手法をとっています。 (stylesheet) span.guard{ position:absolute; display:block; width:100%; height:100%; background-image:url(spacer.gif); } 本文(imgの前に) <span class="guard"></span> これで表示画像はガードがかかっています。 そして更にこの画像を <script language="JavaScript"><!-- var pname;function img_sc(nam){pname=nam;myphoto=new Image();myphoto.src=nam+".JPG";} function win_op(){if(myphoto.complete){x=myphoto.width+20;y=myphoto.height+30;window.open(myphoto.src,pname,"menubar=no,scrollbars=yes,resizable=no,width="+x+",height="+y);}} //--></script> 本文 <a href="javascript:void(0);" onmouseover="img_sc('DSC_8262');" onclick="win_op();" title="拡大表示"> として別窓表示をしています。 ところがこの別窓表示の方にはガードがかけられません。 上のガードのかけ方を別窓にも適用する方法はありますか?

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

  • ベストアンサー
  • abacabu
  • ベストアンサー率37% (250/663)
回答No.2

趣味でHPを製作している者です No,1さんの回答を受けてHTMLページで拡大画像を表示するなら ブロックの他にJavaScriptで右クリック禁止を設定しては どうでしょうか?余りPCに詳しくない人には絶対画像を取れませんし、 これもまぁ気の持ちよう的物ではありますが…。 function RestrictRightClick(myButton){ if(document.all) {           ここから if(event.button==2) { alert('右クリックは制限されております'); return false;                IE用 } }                    ここまで else if(document.getElementById) {   ここから if(myButton.which==3) { location.href='event2_blank.html'; alert('右クリックは制限されております');   N6用 location.href='サブページのURL'; } }                     ここまで            if(document.layers){            ここから if(myButton.which==3) { alert('右クリックは制限されております'); return false;                  N4用 } }                      ここまで } if(document.all || document.getElementById)   ここも document.onmousedown=RestrictRightClick;      N4用 if(document.layers){ window.captureEvents(Event.MOUSEDOWN); window.onmousedown=RestrictRightClick; }

noro6857
質問者

お礼

ありがとうございます。 scriptの知識はないのでこのソースをベタッと張り付けてみました。 保存メニューも消えて、これならガードもバッシリですね。 これを第1ファイルの方にも使用するとしたら記述が変わってくるんでしょうね。 ところでリンクさせるhtmlファイル、元ファイルは画像をもとに自動生成していますが、リンク先ファイルはファイル名や表示させるリンク画像を画像にあわせるため手動で作成しなければならず、毎回50枚ほど新たに作るとけっこう大作業なので目下思案中です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#23734
noname#23734
回答No.3

function win_op(){ if(myphoto.complete){ x=myphoto.width+20; y=myphoto.height+30; window.open('???.html#'+myphoto.src.replace(/\.jpg/,''),pname,"menubar=no,scrollbars=yes,resizable=no,width="+x+",height="+y);} ???.html window.onload=function(){ isrc=(window.location+"").split('#')[1] document.body.style.backgroundImage='url('+isrc+'.jpg)' document.body.style.backgroundRepeat="no-epeat" } 気休めになりませんかね。

noro6857
質問者

お礼

お手数をかけます。 張り付け方が上記の場合わかりかねていますが 前段が元ファイル、後段(???.html以降)がリンク先ファイルに貼り付けるということでしょうか。 そして前段の「???.html#」はリンクするファイル名を記述するということでょうか。 あと基本的な質問として、これらはjavascript宣言して、先に書いたstyleのガードと併用すればいいのですよね?

全文を見る
すると、全ての回答が全文表示されます。
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくは。 まぁ、ちょっと無理じゃない。。。?と思うんですけどねぇ。 自分の方法が気に食わない場合は、もっと詳しい方の回答を待ってみてください。 >>別窓表示の方にはガードがかけられません まぁ、「画像」を直接開いているので、無理っちゃ無理な気がしなくもないですけどね。 JavaScriptで開く時に、Styleの中身も一緒に渡せれば。。。とか思いますけど、自分には思いつきませんので。 「画像を開く」のではなく、「画像を表示しているHTMLを開く」に変更すれば容易ですよね。 画像をクリックすると表示。ですよね? その際に指定するのを「.jpg」の画像にしないで、「.html」にしちゃえば、適用は楽かと。 まぁ、1つ多くファイルが存在するので、邪魔にはなるかもしれませんけどね。 >>画像ファイルのDL禁止のために えーと。ご存知かどうかは分かりませんが、余談です。 分かっていた上でのことでしたら失礼します。 インターネット上にWebページを作り、公開している時点で、不可能です。 「利用者がそのWebページにアクセスし、利用した段階」でほぼ全てが利用者側にDLされていると思ってください。 基本的に、「Webページを表示するのに必要な情報をDLしてきて、利用者のパソコンで表示する」のですから、アクセスした時点で、ほとんどの情報は利用者のパソコンの中に入っています。 XPの場合だと、Cドライブ内の隠しフォルダ内にある「Temporary Internet Files」とかに入ってますけど。 「初めて接続するWebページは表示するまでに時間がかかるけど、2回目に接続したら前よりもスムーズに行った」 とかってのは、ここにDLした情報を使って表示させている場合があるから、早かったりします。 「インターネット上で公開する限りは絶対にDLさせない!」ってのは不可能だとは覚えておいてみてください。 (ぶっちゃけ、画像ファイルならPrintScreenで十分ですしね。

noro6857
質問者

お礼

どうもありがとうございます。 別窓でできなかったら、ご説明にあるようにhtmlリンクをさせて同じかけ方をするっきゃないですね。 それとたしかに画像でもMIDIでもいくら見栄えでガードかけてもそのコツさえ知っていればtempに入るわけだしPrintScreenでも可能なので、すべてDLできちゃうから、絶対的なことはできないのですが、まぁ気の持ちようということで(笑)。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • html内かscript内で画像出力。どちらが軽い

    ホームページの読み込みは、画像を使えば使うほど重くなってしまいます。 下記コードでは、(1)と(2)で1.jpg~5.jpgの画像をページに出力しています。 (1)はHTMLに、(2)はscript内に、 (1)と(2)では(2)の方がhtmlに<img src=".jpg" width="800" height="300"/> と書かなかった分、ページが重くならない、ということになりますか? <html> <head> <title>HTML上に直接imgを出力した場合</title> </head> <body> <img src="1.jpg" width="800" height="300"/> <img src="2.jpg" width="800" height="300"/> <img src="3.jpg" width="800" height="300"/> <img src="4.jpg" width="800" height="300"/> <img src="5.jpg" width="800" height="300"/> </body> </html> <html> <head> <title>HTML上にはimgを出力せず、script内でimgを出力した場合</title> <script language="JavaScript"> var imgSanple = new Array( "1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"); var randomSelect = Math.floor((Math.random() * 100)) % imgSanple.length; var i = "<img src='"+imgSanple[randomSelect]+"' width='800' height='300'>"; document.write(i); // --> </script> </head> <body> <noscript> <img src="1.jpg" width="800" height="300"> </noscript> </body> </html>

  • jsでサムネイルを拡大表示 複数設置するには

    自分なりにやってみているのですがどうにも解決できない状態に なってしまいましたので教えて頂けたらと思います。 サムネイル画像をクリックすると拡大画像が表示されるjsを作成し この仕組みを一つ設置するのは成功したのですが同じ仕組みを 同じページ内に複数設置するやり方が分かりません。 htmlは下記の様になっています。多少、省いております。 よろしくお願い致します。 <!-- myImg = new Array(0) myImg[0] = ["img/img-1.jpg",""] myImg[1] = ["img/img-2.jpg",""] myImg[2] = ["img/img-3.jpg",""] function chengeImg(i){ document.myPhoto.src = myImg[i][0]; } //--> <td> <img src="img/img-1.jpg"name="myPhoto" width="500" height="400" id="myPhoto" /></td> <td><img src="img/img-1.jpg" width="80" height="80"onmouseover="chengeImg(0)"/></td> <td><img src="img/img-2.jpg" width="80" height="80"onmouseover="chengeImg(1)"/></td> <td><img src="img/img-3.jpg" width="80" height="80"onmouseover="chengeImg(2)"/></td>

  • 画像切り替え

    <div> <img src="image1" alt="" width="300" height="300" /><br /> <img src="image1" alt="" width="80" height="80" /> <img src="image2" alt="" width="80" height="80" /> <img src="image3" alt="" width="80" height="80" /> <div> 下の小さい画像にマウスが乗ったら、上の大きい画像に表示させたいのですが、どのように組んだらよろしいでしょうか、よろしくお願いいたします。

  • HP作成/ジャバスクリプトの記載方法

    こんにちは。HP作成初心者です。 下記のタグ(サムネイル画像をクリックすると、別窓で拡大表示)なんですが、別窓を開いた際に <BODY oncontextmenu="alert('右クリック禁止です');return false;">を記載して別窓内の右クリックを禁止させたいんですが、下記文章内のどのスペースに禁止タグを貼付ければよいか解らずに困っています。 よろしければアドバイス御願します。 サムネイル別窓ソース↓ a href="Javascript:tempWin.focus()" onClick="tempWin=window.open('s.t.gif','sample','width=400,height=400')" border="0"> <img src="s.t.gif" width="80" height="80" border="0"> <a href="Javascript:tempWin.focus()" onClick="tempWin=window.open('member1.jpg','sample','width=400,height=400')" border="0"> <img src="member1.jpg" width="80" height="80" border="0"></a> <a href="Javascript:tempWin.focus()" onClick="tempWin=window.open('member1.jpg','sample','width=400,height=400')" border="0"> <img src="member2.jpg" width="80" height="80" border="0"></a>

    • ベストアンサー
    • Mac
  • HPがFirefoxでは問題ないのに、IEだと画像に空白ができます。

    DreamWeaver8を使いHPをさわってるんですが、IE6で見ると、TOPページの画像と画像の間に空白ができて見えます。DreamWeaver上でもFirefoxでも問題なく表示されるんですが、原因がわかりません。 (当方初心者で、このHPももともと業者さんが作ったものを、途中から簡単な更新等のみを知人からお願いされてしておりますので、CSSやらタグやら勉強中で、まだまだよく解ってないような感じです。そんな人間がHPを触るな!という意見がごもっともだとは思いますが、知人も周りに頼めるような人間もなく私にお願いしてきておりますので、なんとか綺麗に見えるようにしたいのです。) これだけの説明では解りにくいと思いますので、以下におかしいと思われる個所を載せます。 <div class="top-h-left"></div> <div class="top-h-right"> <div class="t-sub-navi"> <ul> <li class="h-home"><a href="../index.html"><img src="../img/top_h_home.jpg" alt="HOME" width="53" height="20" class="imgover" /></a></li> <li class="h-inquiry"><a href="../info/inquiry.html"><img src="../img/top_h_inquiry.jpg" alt="お問い合わせ" width="81" height="20" class="imgover" /></a></li> <li><a href="../info/sitemap.html"><img src="../img/top_h_sitemap.jpg" alt="サイトマップ" width="82" height="20" class="imgover" /></a></li></ul><br clear="all" class="partition" /></div><img src="../img/top_img1.jpg" alt="○○○」" width="410" height="160" /></div> <span class="top-h-left"><a href="http://www./○○○"><img src="../img/logo_top.jpg" alt="○○○" width="340" height="180" /></a></span><br clear="all" class="partition" /> <img src="../img/top_img2.jpg" alt="" width="340" height="209" /><img src="../img/top_img3.jpg" alt="" width="410" height="209" /><br /> <div class="top-global-navi"> この画像のimg1とimg3の間に空白が現れてしまいます。 (○の部分はHPのアドレスや店名等が表示されていましたので、略させて頂きました)

  • ▲▲マウスオンで画像を変更について▲▲

    <span onmouseout="changeimg.src='h1.bmp'" onmouseover="changeimg.src='h2.bmp'"> <img src="h1.bmp" width="188" height="43" border="0" name="changeimg"> </span> このタグを使っています。適切かどうかはわからないのですが^^ この他のタグでもかまいません、複数画像が変わるものを1つのページに表示させたいと思っています。 何か良いタグはないでしょうか?

    • ベストアンサー
    • HTML
  • 1つの画像オンマウスで3つの画像を切り替えたい!

    現在、下記のような感じで一つの画像オンマウスでその画像を含む3つの画像が切り替わるようにしています。 ---------------------------------- <a href="#" onMouseOver="11111.src='a.gif';22222.src='b.gif';33333.src='c.gif'" onMouseOut="11111.src='a_01.gif';22222.src='b_01.gif';33333.src='c_03.gif'"><img src="aaaaaa.gif" alt="" width="94" height="32" border="0" name="11111" /></a> <img src="b_01.gif" alt="" width="572" height="50" name="22222" /> <img src="c_01.gif" alt="" width="96" height="32" border="0" name="33333" /> ---------------------------------- IE6だと、きちんと表示されるのですが、 Firefoxだと表示がおかしくなります。 改善方法はありませんでしょうか? 助けてください!

  • 画像を縦に並べたら隙間ができることについて

    画像を縦に並べたところ隙間ができてしまいます。 隙間無くくっつけたいのですがどうすればいいのでしょうか。 以下htmlです。 <img src="img/nakama_img01.gif" width="687" height="227" alt="画像1" /><br /> <img src="img/nakama_img02.gif" width="687" height="197" alt="画像2" /><br /> <img src="img/nakama_img03.gif" width="687" height="244" alt="画像3" /> <br />で改行せずくっつけてタグを並べても同じ結果でした。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 画像が表示できない

    ホームページに画像を張りたいのですが、画像が表示できません。<img src="***.jpg" width="100" height="100" alt="***">としたのですが、どこがおかしいのでしょうか。

  • 画像に触れると画像が変わるやつについて

    画像に触れると画像が変わるやつ (<IMG SRC="最初に表示される画像"   onMouseOver="this.src='触れると表示される画像'"   onMouseOut="this.src='最初に表示される画像と同じの'"> )の、 画像の大きさをWIDTH,HEIGHTなどで 指定することは出来ないのでしょうか?

    • ベストアンサー
    • CSS
このQ&Aのポイント
  • 電話帳の移行ができなくて困っています。過去には何回か(4台目)しているのですが、期間が空きすぎてわからなくなってしまいました。リモートセットアップのインストールをしていないため、ネット上で拾うことができません。新機種をネットに接続しているため、旧機種はネットに接続されていません。
  • パソコンのOSはWindows 10で、接続はUSBです。関連するソフト・アプリはありません。電話回線の種類はひかり回線です。
  • 電話帳の移行に困っている場合、MFC J837DNのリモートセットアップをインストールすることをおすすめします。リモートセットアップを利用すると、新機種と旧機種をネットワークで接続し、電話帳のデータを簡単に移行することができます。詳しい手順はブラザー公式サイトを参照してください。
回答を見る