例として使用しているスクリプトを使用して、条件を設定するだけです。ここでinArray()
説明する関数を使用しました。基本的なロジックは、中和したくないリンクのリストであるという配列を設定することです。そして、関数を使用することにより、関数はすべてのリンクを論理的にトラバースできますが、 :を無視します。good_links
inArray()
disable()
good_links
<script type="text/javascript">
function disable(){
var good_links = new Array();
good_links[0] = "http://www.google.com/";
good_links[1] = "http://www.yahoo.com/";
good_links[2] = "http://www.bing.com/";
links=document.getElementsByTagName('A');
for(var i=0; i<links.length; i++) {
if (!inArray(links[i].href, good_links)) {
links[i].href="javascript:return false";
}
}
}
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
window.onload=disable;
</script>
さて、これが私のHTMLファイル全体です。動作するはずのリンクは、Google、Yahoo、Bingのみです。Apple、Catmoji、StackOverflowは無効になっています。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Webpage</title>
<script type="text/javascript">
//<![CDATA[
function disable(){
var good_links = new Array();
good_links[0] = "http://www.google.com/";
good_links[1] = "http://www.yahoo.com/";
good_links[2] = "http://www.bing.com/";
links=document.getElementsByTagName('A');
for(var i=0; i<links.length; i++) {
if (!inArray(links[i].href, good_links)) {
links[i].href="javascript:return false";
}
}
}
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
window.onload=disable;
//]]>
</script>
</head>
<body>
<a href="http://www.google.com/">http://www.google.com/</a><br />
<a href="http://www.apple.com/">http://www.apple.com/</a><br />
<a href="http://www.yahoo.com/">http://www.yahoo.com/</a><br />
<a href="http://www.catmoji.com/">http://www.catmoji.com/</a><br />
<a href="http://www.bing.com/">http://www.bing.com/</a><br />
<a href="http://www.stackoverflow.com/">http://www.stackoverflow.com/</a>
</body>
</html>