以下は、Joomla のプラグインのコードです。それ自体で動作し、その目的は、ページ上の外部リンクを検出し、_blank を使用してそれらを新しいブラウザー ウィンドウに強制することです。
私は約1時間試しましたが(JavaScriptはよくわかりません)、onclick機能を機能させる方法がわかりません。
最終的な結果として、2 番目のコード セクションに示されている確認ダイアログの機能をこのスクリプトに追加したいと考えています。
外部リンクをクリックすると、確認ダイアログが表示され、「はい」と表示された場合は、外部 URL にアクセスして新しいウィンドウで開くことができます。それ以外の場合はキャンセルされ、何もしません。
とのリンクを作成すると
onclick="return ExitNotice(this.href);"その中では完全に機能しますが、私のWebサイトには複数の人が入力を送信しているため、確認ボックスをグローバルにしたいと思います.
this.blankwin = function(){
var hostname = window.location.hostname;
hostname = hostname.replace("www.","").toLowerCase();
var a = document.getElementsByTagName("a");
this.check = function(obj){
var href = obj.href.toLowerCase();
return (href.indexOf("http://")!=-1 && href.indexOf(hostname)==-1) ? true : false;
};
this.set = function(obj){
obj.target = "_blank";
obj.className = "blank";
};
for (var i=0;i<a.length;i++){
if(check(a[i])) set(a[i]);
};
};
this.addEvent = function(obj,type,fn){
if(obj.attachEvent){
obj['e'+type+fn] = fn;
obj[type+fn] = function(){obj['e'+type+fn](window.event );}
obj.attachEvent('on'+type, obj[type+fn]);
} else {
obj.addEventListener(type,fn,false);
};
};
addEvent(window,"load",blankwin);
第二部
/* ----------
OnClick External Link Notice
---------- */
function ExitNotice(link,site,ltext) {
if(confirm("-----------------------------------------------------------------------\n\n" +
"You're leaving the HelpingTeens.org website. HelpingTeens.org\ndoes not " +
"control this site and its privacy policies may differ\nfrom our own. " +
"Thank you for using our site.\n\nYou will now access the following link:\n" +
"\n" + link + "\n\nPress \'OK\' to proceed, or press \'Cancel\' to remain here." +
"\n\n-----------------------------------------------------------------------"))
{
return true;
}
history.go(0);
return false;
}
A) この問題を解決するのを手伝ってくれる人はいますか? または B) より良い解決策はありますか?