如何用javascript提取链接对象中已经被访问的那些,而不是用样式表? 高高手请解答~~~

scoooo 2002-12-03 05:44:44
请读完全文再发表高见,谢谢~~~
我们知道,用 linktag = document.all.tags("a") 可以引用页面中所有的 a 元素,例如:
var linktag = document.all.tags("a");
for (i=0; i<linktag.length; i++){
obj = linktag.item(i);
with (obj) {
style.color = "#FF0000";
}
}
可以让页面中的这些链接的色彩变成 #FF0000

现在我希望用这种方式只引用访问过的链接,让这些的颜色变成 #FF0000
请注意,我们知道用样式表比如
A:visited {
color: "#FF0000";
}
可以达到目的,但是,由于有其他的用途,我现在只希望用javascript达到。谢谢~~~
...全文
37 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
scoooo 2002-12-09
  • 打赏
  • 举报
回复
在样式表中用
A:visited {
color: "#FF0000";
}
就能识别出曾经访问过的链接,这点是浏览器自动去识别的(我想大家应该都知道吧)。
希默软件 2002-12-06
  • 打赏
  • 举报
回复
比如我曾经在其他浏览器窗口访问过http://www.sina.com.cn,那么当我打开test.htm时,www.sina.com.cn 这个链接应该是被访问过的。

历史记录中或者其他浏览器窗口有没有访问过,谁又知道呢?
scoooo 2002-12-06
  • 打赏
  • 举报
回复
qiushuiwuhen(秋水无恨)
sorry~~~不是在前面加图标,而是要引用这个链接的上层元素,并使其隐藏。。

具体是这样的,每个链接都是在表格的一个单元格(td)里,我希望能把访问过的链接所在的tr的样式改为隐藏。。。

我不太明白你那样的在样式表里定义一个属性的方法能否达到目的。或者你给出一个整体的代码好吗?
qiushuiwuhen 2002-12-06
  • 打赏
  • 举报
回复
自定义一个属性,然后判断即可,如A:visited {qswh:1}

ps.我想你是要做“没访问过的前面加new图标”吧?
scoooo 2002-12-06
  • 打赏
  • 举报
回复
我也觉得我的要求非常苛刻,也许在当前的浏览器版本中(只要解决在ie中的使用就可以了)根本就不可能实现吧,但确实是我的程序功能需要啊。但是好像不是什么奇怪的问题吧。。 ;-)

其实我的最主要目的是与
var linktag = document.all.tags("a");
obj = linktag.item(i);
类似的功能,只是这里的linktag引用的是这个页面中的所有链接,而我却要单独引用被访问过的连接。变换颜色只是我举的一个例子而已,实际上,我有可能是让这个元素的字体变化,或者让这个元素的上层元素隐藏。。。其实,引用这个被访问过的链接的相对位置的某个元素(如上层元素或者下一个元素)才是我最终的目的。。。

期待ing................
wind0209 2002-12-05
  • 打赏
  • 举报
回复
说明白了,我也期待ing
scoooo 2002-12-05
  • 打赏
  • 举报
回复
看来我把问题还得说的更清楚。首先,绝对不能用样式表,最好甚至或是必须是用javascript(当然,jscript.vbscript同在考虑中),因为我的最终目的并非简单的改变一个链接的颜色或外观,而是要用parentNode或者nextSibling等方式访问他的相对位置相关的一些元素(具体是什么视情况而定)。
另外,Go_Rush(阿舜) 的代码基本是符合我最开始提的要求的,但是请注意有个问题你忽略了,我所要求的被访问过了而指浏览器的历史纪录中的被访问过的链接,而不是当前这个页面被打开后被访问过的链接。
说仔细点,比如我曾经在其他浏览器窗口访问过http://www.sina.com.cn,那么当我打开test.htm时,www.sina.com.cn 这个链接应该是被访问过的。但是Go_Rush(阿舜) 的代码却不是这样~~~
我说明白否?盼解答。。。
Go_Rush 2002-12-05
  • 打赏
  • 举报
回复
吓,你的要求还真奇怪。

那样子就不好弄了。

问你一句,如果有人访问了这个联接,这个联接会变颜色吗?
(也就是说,一个联结访问前和访问后的颜色相同吗?)

如果颜色不同。就只能根据联接的当前颜色来判断了
Go_Rush 2002-12-04
  • 打赏
  • 举报
回复
算了,还是给你代码把

a.htc

<PUBLIC:COMPONENT>
<PUBLIC:ATTACH EVENT="onclick" ONEVENT=(function(){visited=true})() />
<PUBLIC:PROPERTY NAME="visited" />
</PUBLIC:COMPONENT>


test.htm

<script>
function check(){
var colls=document.all.tags("A");
var collnum=colls.length;
var disp=new Array();
for(var i=0;i<collnum;i++){
disp[i]=colls[i].id+(colls[i].visited?"已经":"没有")+"被访问";
}
alert(disp.join("\n\n"));
}
</script>

<style>A{behavior:url('a.htc')}</style>

<a id=a1 href="" target="_blank">a1</a>
<a id=a2 href="" target="_blank">a2</a>
<a id=a3 href="" target="_blank">a3</a>
<a id=a4 href="" target="_blank">a4</a>
<a id=a5 href="" target="_blank">a5</a>
<a id=a6 href="" target="_blank">a6</a>
<button onclick="javascript:check()">看看那些被访问过了</button>
Go_Rush 2002-12-04
  • 打赏
  • 举报
回复
如果一定要用javascript,那么htc是最方便的拉

给<a>定义一个属性,用来标示是否被访问过
chenbinghui 2002-12-03
  • 打赏
  • 举报
回复
关注!
希默软件 2002-12-03
  • 打赏
  • 举报
回复
不用JS

<body vlink="#FF0000">

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧