Javascript ,有没有办法让 JavaScript 禁用除一个链接之外的所有链接
Javascript , is there a way to make the javascript disable all links except one
我想将一个站点上的所有链接重定向到另一个域。除了网站中的几个菜单链接和一个图像..我能找到的只是这段代码,它只是禁用了所有链接任何想法
function disable() {
links=document.getElementsByTagName('A');
for(var i=0; i<links.length; i++) {
links[i].href="javascript:return false";
}
}
window.onload=disable;
我想展示大量人们可以下载的演示模板,但是这些模板有各种各样的链接,我不希望人们浏览,所以我想在模板中放一张图片,说看更多模板。 这是我想要启用的唯一链接
使用您拥有的脚本作为示例,只需设置一个条件。我使用了此处描述的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文件,它可以工作。唯一应该有效的链接是:谷歌,雅虎和必应。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>
您需要找到您不想禁用的链接的某些属性,然后在循环时检查该属性。例如,如果图像和菜单链接#
作为其href
属性:
function disableLinks () {
var allLinks=document.getElementsByTagName('A');
for(var i=0; i<allLinks.length; i++) {
if (allLinks[i].href !== '#') {
allLinks[i].href="javascript:return false";
}
}
}
window.onload = disableLinks;
值得一提的是,在没有充分理由的情况下禁用/重定向一堆链接是激怒用户并使他们永远不会返回您的网站的好方法。
如果您使用的是 Apache,并且可以区分要重定向的链接和不重定向的链接,您可以调整 Apache mod_rewrite规则...
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]
(.*)
必须改变,但这是一个开始。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 为什么window.open不打开一个以变量形式给出的链接
- 在javascript中的xml中创建一个链接
- 有可能在来自链接的警报中有一个值吗
- 当页面包含指向一个图像的多个链接时,fancyBox会复制缩略图辅助图像
- 如何制作href链接和<李>在一个包装中
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- 链接到手风琴中的另一个选项卡,嵌入的链接将不起作用
- 悬停时将一个链接更改为两个
- Javascript一页滚动脚本滚动到每个点击的链接一个接一个
- 如何破解LiveScript以便在html中链接一个单独的文件
- 如何链接一个表单输出到一个谷歌融合表查询使用javascript
- 如何从URL链接一个散列链接到Javascript内容
- 如何给当前页面's链接一个禁用的外观
- 需要帮助链接一个按钮到wordpress主题自定义器的功能
- 什么是正确的方式来链接一个按钮到谷歌地图
- 链接一个本地函数
- Angular的承诺(关于一个承诺?)或者如何在$http之后链接一个.then.成功的角度
- js试图在一个特定的日期链接一个时间表