设置href属性会替换链接的文本

时间:2011-09-26 21:41:54

标签: javascript jquery html href

编辑:我不是在谈论状态栏显示,我在谈论您点击的文字以关注链接。 / EDIT

我浏览了几篇类似的帖子但没有找到答案。我有一个我想要显示的链接。

www.mylink.com

我希望每次点击链接时都会更改链接的href。

HREF = “www.mylink.com?R=340978”

每次单击后,查询字符串将更改为随机数,以防止浏览器缓存页面。预计页面会频繁更改并经常查看以评估这些更改。

所以我希望人们看到“www.mylink.com”,但链接指向“www.mylink.com?R=34532”我认为我会通过onclick事件来实现这个目标,这将会增加一个新的随机数并将href属性设置为新链接,但这也会更改显示的文本。

<script type="text/javascript">

var baseLink = "http://myDevLink/library/ea26098f-89d1-4305-9f75-afc7937f8336/25/test/036b602b-0bde-e011-957b-1cc1dee8bacd.html";
var link = "";

// Prime the link
$(document).ready(function() 
{
    NewRandomParam();
});

function NewRandomParam()
{
    // Make sure one of the warning messages isn't displayed instead of the link        
    if (document.getElementById("link") != null) 
    {
        // Add a random number param to the query string to prevent the user from opening a cached version of the page
        link = baseLink + "?R=" + Math.floor(Math.random() * 1000000);
        document.getElementById("link").setAttribute("href", link);
    }
}

</script>

<body>

<div id="divContent" style="display:inline; border:0px" class="tab">
<pre style="margin-top: 0;" >
<font face="tahoma">
<a href="" id="link" onclick=NewRandomParam(); target="_blank">http://myDevLink/library/ea26098f-89d1-4305-9f75-afc7937f8336/25/test/036b602b-0bde-e011-957b-1cc1dee8bacd.html</a>
</font>
</pre>
</div>

</body>
</html>

从上面的代码中可以看出,应该显示的内容没有查询字符串,但是当我查看页面时,href的值与查询字符串一起显示。如果我做了一个视图源,那么正确的URL就在那里,应该显示但不是。

请告诉我我愚蠢的地方。

3 个答案:

答案 0 :(得分:2)

解决方案是这里建议的事情的组合,加上必须将链接文本重置为我想要的内容。这是有效的。

<script type="text/javascript">

var baseLink = "<%= this.link %>";
var link = "";

$(document).ready(function () 
{
    // Add a timestamp param to the query string to prevent the user from opening a cached version of the page
    $('#link').mouseenter(function () 
    {
        var date = new Date();
        link = baseLink + "?Timestamp=" + date.getTime();
        $("#link").attr("href", link);
        $("#link").text(baseLink);
    });

});

</script>

感谢你们所有人。

答案 1 :(得分:0)

随机数在这里不是一个好主意。总是有机会获得重复的数字。只需使用date.getTime(),它应该是“随机”的,足以达到您的目的。

更改href不应该更改链接中的文本。它们有时是相同的文本,但这是通过将相同的信息放在两个地方(在href属性内)和<a>linkname</a>标签本身内的文本。更改一个应该永远不会影响另一个,除非你有一些其他代码可以保持同步。

如果你的意思是你希望改变链接徘徊时窗口状态栏中显示的内容,祝你好运。大多数浏览器都有防止这种摆弄的机制,因为改变状态栏文本被垃圾邮件发送者和诈骗者严重滥用。

答案 2 :(得分:0)

<script type="text/javascript">
   $(document).ready(function() {

      var baseLink = "http://myDevLink/library/ea26098f-89d1-4305-9f75-afc7937f8336/25/test/036b602b-0bde-e011-957b-1cc1dee8bacd.html";
      var link = "";

      $('#link').mouseenter(function() {
         link = baseLink + "?R=" + Math.floor(Math.random() * 1000000);
         $("#link").attr("href", link);
      });
   });
</script>