dポイントプレゼントキャンペーン実施中!

お世話になります。
HP初心者です、素人ゆえおかしな質問をしてしまうかもしれませんが許してください。
あるページに飛んだときポップアップで子ウインドウを表示するように
Java Scriptを設定したのですがInternet Explolerではちゃんと表示せれますがSafariでは表示しませんでした。
これはスクリプトを書くときに何か解決策となるような方法があるのでしょうか?それともSafariで表示させるのは諦めるしかないのでしょうか?
どなたかよろしくお願いします。

A 回答 (2件)

Safariは持ってないので分かりませんが、


nipoxさんの言うとおり、
1. ソースが無いのでなんともいえないのと
2. Safariのセキュリティー設定にて禁止している
3. セキュリティーソフトにてポップアップを禁止している。
の三つが考えられます。まず、あなたのPCのIEではできたとして、他の人のPCのIEではできない可能性があるというのも考えられますしね。


以下のスクリプトを用意しました。
ページ内の全ての<A>タグに作用されるスクリプトです。<HEAD>~</head>内に入れておくこと。

<script type="text/javascript">
function extlnkstrict() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i < anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("target"))
anchor.target = anchor[i].target;
}
}
window.onload = extlnkstrict;
</script>

このスクリプトがするのは通常
<a href="" target="">とあるところ、target="_blank"と合った場合は新しいウインドウあ開き、どっか違う名前target="存在するウインドウ名"だったらそのウインドウに読み込まれるところを模倣するものです。

っとここで突っ込まないで下さい。回りくどくない?といわれるかもしれませんが本当のこのスクリプトは
<script type="text/javascript">
function extlnkstrict() {
if (!document.getElementsByTagName) return;
var anchors = document.getElementsByTagName("a");
for (var i=0; i < anchors.length; i++) {
var anchor = anchors[i];
if (anchor.getAttribute("href") && anchor.getAttribute("rel"))
anchor.target = anchor[i].rel;
}
}
window.onload = extlnkstrict;
</script>
となっていて、上記との違いは6,7行目の違い、target -> relに変わっただけです。

このスクリプトはもともとHTML4.0StrictとXHTML1.0Strict用に作られたものでHTML4.0StrictとXHTML1.0Strictでは<a>タグにtarget属性が使えないので変わりにtarget="_blank"とあるところをrel="_blank"と変えたりするときにtargetと同じ動作をするために作られたものです。

ま、試してはいませんが、SafariならDocument Object Model 1.0 (DOM1)という仕様?に対応してるんじゃないかと思うので使えるかも知れないかもって事で試してください。<head>~</head>内に入れるだけなので。

ちなみに、元の参考ページは英語です。

参考URL:http://www.sitepoint.com/article/standards-compl …
    • good
    • 0

ソースがないのでなんともいえませんが、



セキュリティの設定等で
ポップアップ禁止になっていませんか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!