Google Chromeがwindow.open(someurl)を開きます。
-
10-10-2019 - |
質問
タイトルにあるように、「Google Chromeはwindow.open(someurl)が正常に開きます...しかし、クリックされたリンクを備えたページ/ウィンドウはsomeurl.comも開きます。
onclick = "shpop ..." call添付の「ここをクリック」リンクをクリックすると、ポップアップが正しく開きます...しかし...同時に、元のウィンドウが開きます /facebook_login .phpも!
これはChromeとIEで発生しますが、FFは問題ありません。
私はこのリンクを持っています:
<a href="/facebook_login.php" onclick="shpop('','','loginfb','');return false">Click here</a>
href = "/facebook_login.php"を削除し、href = "#"に置き換えることができることはわかっています。
私はこのJSコードを私のタグにインポートしています:
function shpop(u,t,w,v)
{
var text = encodeURI(t);
var uri = encodeURI(u);
var h = document.location.href;
h = encodeURI(h);
var wwidth='600'; /*popup window width*/
var wheight='300'; /*popup window height*/
if(v=='' || undefined==v)v=document.domain; /*popup name/title */
switch(w){
case 'loginfb':
var url = '/facebook_login.php';
wwidth='980';
wheight='600';
break;
}
window.open(url,v,'width='+wwidth+',height='+wheight);
return false
}
何か案は?
解決
falseを返すことと、onclickにfalseがあることは何ですか?
これ
onclick="shpop('','','loginfb','');return false"
ただ必要です
onclick="return shpop('','','loginfb','');"
OnClickがエラーを返している場合、リンクは開きます。 JavaScriptコンソールにエラーがありますか?ブラウザが何かについておかしくなっているのだろうか。 document.domainを使用することからウィンドウ名。名前を付けてみてください。
onclick="return shpop('','','loginfb','foobar');"
他のヒント
最新のものによると ブラウザ統計 - 最後に測定されたのは、とにかく(2008)ユーザーの5%のみがJavaScriptを無効にしていました。今日、それは少ない可能性があります。すべてのブラウザにはデフォルトで有効になっていることを考慮してください。したがって、一般に、何らかの理由でJavaScriptを無効にすることを選択したのは上級ユーザーのみであり、したがって、訪問するWebサイトは予想どおりに機能しない可能性があることを理解します - Facebook、Google、Amazon-誰もがJavaScriptを使用しています。ユーザーがそれを使用していると仮定することは完全に受け入れられます。 <noscript>
本当にすべてのベースをカバーしたい場合は、ユーザーのページの開始時のバージョン:)
これが最も簡単な解決策です。
<a href="/facebook_login.php"
target="FBpopup"
onclick="window.open('about:blank','FBpopup','width=980,height=600')">
Click here
</a>
必要はありません return false
実際にリンクを実行したいからです。
トリックは、を使用することです 同じウィンドウ名 Window.openとリンクターゲットの両方で。
window.openがポップアップを作成し、そのポップアップでログインページを実行します。
ポップアップがブロックされているか、JavaScriptが無効になっている場合、ログインページは新しいタブで実行されます。