お世話になります。jQuery初心者です。
特定のURLの時のみ画像を表示にしたいのですが、うまくいかずに行き詰っています。
CSSで display: none; になっている部分を変えたいだけなのですがうまくいきません。
※Iframeは変えられません。外部の画像を読み込むので。
いろんな方のHPを見て試しましたがうまくいきません。
お力をお貸しください。よろしくお願いします。
【条件】
もしURLが http://example.com/ なら、displayをblockにして画像表示。
もしURLが 上記以外なら、そのままで画像は非表示。
【HTML】
<iframe src="画像URL" class="slide2019" scrolling="no" frameborder="no" style="width: 100%; height: 500px; display: none;"> </iframe>
【jQuery】
jQuery(window).bind("load", function(){
// 現在ページのURL取得
var url = window.location.href;
// 現在ページが http://example.com/ なら実行
if(url == 'http://example.com/ '){
jQuery('.slide2019').css('display','block');
}
});
No.1ベストアンサー
- 回答日時:
特に問題となる箇所が見当たりません
気になる点として、このままではページURLが微妙に変化しただけで動作しなくなりますので、
判定条件をもうすこし緩和して、
URL のホスト名やパス部分のみで判定するなり、
正規表現で部分一致判定しては如何でしょうか。
例)
https://example.com/ ← ssl 化
http://example.com/?param=123 ← クエリ付き
http://example.com/#foobar ← フラグメント付き
参考)
https://developer.mozilla.org/ja/docs/Web/API/Lo …
window.location.host // ホスト名のみ
window.location.pathname // パス部分のみ
ご回答ありがとうございます。
>>特に問題となる箇所が見当たりません
そうですか。Wordpressでできたサイトに書き込んでいるからでしょうか?
それか私のデバッグの仕方が悪いのか。。。ChromeのDeveloperモードで "console" に打ち込んでいるのですが変化が見られなくて。。。
No.2
- 回答日時:
こんにちは
>CSSで display: none; になっている部分を変えたいだけなのですがうまくいきません。
どのような環境でテストなさっているのでしょうか?
ほぼ実装環境でテストしているものと仮定して、ブラウザ側にjavascriptのエラーは発生しているでしょうか?
発生しているなら、そこから原因を辿ってゆくのが早そうに思います。
エラーが出ていない場合は、条件分岐で「表示処理」が行われていない可能性が大きいと思います。
単純な文字列比較ですが、実際の内容を把握するために、console.logやalertなどで変数urlの内容を確認してみるのがよさそうに思います。
想像するところ、本当の実装環境ではないので、取得のurlが比較対象と異なってしまっているなどというところがオチではないでしょうか?
ところで、この機能の実装ってよく意味がわかりません。
「非表示のままになる」ケースっていったいどのようなケースなんでしょうか?
運営者が意図的にそのようなページを作成することはもちろん可能ですが、ご提示のような制御をする必然性が見当たりません。
表示するページでははじめから表示に、表示しないページではiframe無しにしておけば済んでしまうことですので・・・
それ以外の要因で、表示/非表示が切り替わるようなことが思いつきません。
判断の対象が、Referer などであればまだわかりますが、ページ自身のURLなので・・・
それとも、ページ番号をURLクエリ部なので送ると、それに応じたページが表示されるといった動的なページなどでしょうか?
(その場合でも、サーバ側で制御してしまえば必要なさそうに思われます)
ご回答ありがとうございます。実装解決いたしました。
細かくご回答いただいたようなのですが、私はサーバー側で制御等ができないので。。。
>>「非表示のままになる」ケースっていったいどのようなケースなんでしょうか?
これはWordpressでつくったサイトにスライダーを実装した際のものなんです。
Headerの中に入れ込んだため、ほかのページを開いても常にどこのページにもスライダーが表示されてしまう。という現象を解決するために使用しました。
「普通Headerに入れないよね?」というお考えもあるかと思いますが、構造上の関係でHeaderに入れざるを得なくなったのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1枚の画像をクリックすると複数...
-
textareaに画像を表示したい
-
【早急】画像入れ替えJavaScrip...
-
1枚の画像をクリックして複数の...
-
画像ランダム表示、しかしダブ...
-
キャッシュされた画像を使わず...
-
透過pngの透明部分以外をクリッ...
-
JAVASCRIPTでアクセス毎に画像...
-
javascriptテキストBOX色を元に...
-
テキストエリア内の一部の文字...
-
フッターの下に隙間ができてしまう
-
HTMLですCSSです この画像のよ...
-
背景色と連動するスライドショ...
-
スライドショー「Skitter」をカ...
-
web制作(HP作成について教えて...
-
HTMLタグに複数のクラスを設定...
-
スワップイメージのフェード方...
-
アコーディオンメニューが開い...
-
サムネイルにカーソルを合わせ...
-
大量のチェックボックス状態取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Javascript で共通の処理をどこ...
-
Javascriptで指定した日付と時...
-
textareaに画像を表示したい
-
Gifアニメ、最後のコマに行った...
-
1枚の画像をクリックして複数の...
-
画像ランダム表示、しかしダブ...
-
スライダーを実装した場合、ペ...
-
1枚の画像をクリックすると複数...
-
HTMLで条件分岐はできますか?
-
JavaScript スライドの画像にリ...
-
オンマウスで、画像切り替え+...
-
画像の重なりの順序を代える方...
-
JavaScriptとチェックボックス...
-
透過pngの透明部分以外をクリッ...
-
画像をドラッグ&ドロップで移...
-
各フォルダから1枚ずつ画像をラ...
-
jQueryで特定のURLの時のみ表示
-
bxsliderにて読み込み後に内容...
-
prettyphotoの画像表示について
-
WEBページ立ち上げ時に1回のみ...
おすすめ情報