使用 javascript 重写特定链接,但指向特定目录的链接除外
Rewriting specific links with javascript, except links to specific directory
我有一个包含链接的页面,需要用Javascript重写。div id="container" 中的所有链接都需要从 "post=post-number-234" 重写为 "?id=blog&post=post-number-234"。
目前我有这个脚本:
<script type="text/javascript">
<!--
var content = document.getElementById('content');
var list = div.getElementsByTagName("A");
for( var i = 0; i < list.length; i++ )
{
document.links[i].href = '?id=blog&' + document.links[i].href
}
// -->
</script>
这工作正常。但我有指向图像的链接,这些图像由Fancybook使用。所有这些链接最初都链接到"img/image-name.jpg"。但是现在fancybook不起作用,因为它在"?id=blog&img/image-name.jpg"中搜索图像。
如何将重写应用于div "内容" 内未链接到目录 "img" 的所有链接?
谢谢!
假设您的页面中有类似于以下内容的链接:
<a href="img/name.jpg"><img src="img/name.jpg" /></a>
<a href="post=post-number-234">Post Title - by Author Maybe?</a>
如果你不打算使用框架/库,比如jQuery之类的,你显然需要更繁重的工作,过滤掉你不想改变自己的东西。所以像这样:
<script>
var content = document.getElementById("content")
, list = content.getElementsByTagName("a")
, i = 0
, len = list.length;
for (; i < len; i++) {
// check for "img/" directory or image file-extensions (gif, jpg, jpeg, png)
if (!/^img'/|'.(?:gif|jpg|jpeg|png)$/i.test(list[i].href)) {
list[i].href = "?id=blog&" + list[i].href;
}
}
</script>
在循环中,检查href
字符串是否包含"img",只有在找不到时才修改它。
if (document.links[i].href.indexOf('img') == -1) {
document.links[i].href = '?id=blog&' + document.links[i].href;
}
这工作正常
我怀疑是这样...
首先,你得到一个 id 为 "content" 的 DOM 元素。然后,您尝试从div
获取所有链接,因为ReferenceError: div is not defined
没有在任何地方定义(如果没有,则没有提供所有相关代码)。
如果成功,那么您将遍历找到的链接并按索引访问它们。但来源错误。而不是list
你正在使用document.links
总结一下...
<script>
var container = document.getElementById("container"),
links = container.getElementsByTagName("a"),
i = links.length,
href;
while (i--) {
href = links[i].href;
if (href.indexOf("img/") > -1) {
continue;
}
links[i].href = "?id=blog&" + href;
}
</script>
相关文章:
- 当链接javascript承诺时,如何处理then()函数中的条件
- 如何在grails中链接javascript引导程序方法
- 在PHP代码中单击链接javascript函数调用
- 随机链接javascript以忽略当前页面
- 如何链接javascript承诺和错误
- 在从ruby on rails中的资产管道加载的布局上链接Javascript函数
- 用链接 JavaScript 替换 HTML 的问题
- 突出显示当前链接 Javascript
- 如何在数组中添加超链接(Javascript)
- 有没有一种简单的方法可以在节点上双击 vis.js 创建超链接/javascript-action
- Facebook分享深度链接 - Javascript
- 链接 JavaScript 变量
- 在 AJAX 成功的新选项卡中打开链接 - Javascript
- window.打开一个新页面,然后单击新页面中的链接 - JavaScript
- 链接 JavaScript 函数
- 在 PHP 中链接 Javascript 文件
- 在拖动事件期间禁用链接 Javascript
- 文本框使用 if else 语句打开我的链接 JavaScript
- ajax脚本运行后指向页面的链接(javascript锚点?)
- 动态创建链接Javascript