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

Javascript 设置href属性将替换链接的文本,javascript,jquery,html,href,Javascript,Jquery,Html,Href,编辑:我不是说状态栏显示,我是说你点击链接后的文本/编辑 我浏览了一些类似的帖子,没有找到答案。我有一个我想显示的链接 www.mylink.com 我希望每次单击链接时链接的href都会更改 href=“www.mylink.com?R=340978” 每次单击后,查询字符串将更改为随机数,以防止浏览器缓存页面。预计该页面将经常更改,并经常查看以评估这些更改 因此,我希望人们看到“www.mylink.com”,但指向“www.mylink.com?R=34532”的链接我想我可以通过oncl

编辑:我不是说状态栏显示,我是说你点击链接后的文本/编辑

我浏览了一些类似的帖子,没有找到答案。我有一个我想显示的链接

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>

var baseLink=”http://myDevLink/library/ea26098f-89d1-4305-9f75-afc7937f8336/25/test/036b602b-0bde-e011-957b-1cc1dee8bacd.html";
var link=“”;
//为链接加素数
$(文档).ready(函数()
{
NewRandomParam();
});
函数NewRandomParam()
{
//确保未显示其中一条警告消息而不是链接
if(document.getElementById(“link”)!=null)
{
//向查询字符串添加随机数参数,以防止用户打开页面的缓存版本
link=baseLink+“?R=“+Math.floor(Math.random()*1000000);
document.getElementById(“link”).setAttribute(“href”,link);
}
}
从上面的代码中可以看到,对于应该显示的内容没有查询字符串,但是当我查看页面时,href的值与查询字符串一起显示。如果我查看源代码,正确的url就在那里,应该显示出来,但它不是


请告诉我在哪里我是哑巴。

随机数在这里不是个好主意。总是有可能得到一个重复的号码。只需使用
date.getTime()
,它对于您的目的来说应该是“随机”的

更改href不应更改链接中的文本。它们有时是相同的文本,但这是通过将相同的信息放在两个位置(href属性内)和
linkname
标记本身内的文本实现的。更改一个不应该影响另一个,除非您有其他代码保持同步

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


<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>
$(文档).ready(函数(){ var baseLink=”http://myDevLink/library/ea26098f-89d1-4305-9f75-afc7937f8336/25/test/036b602b-0bde-e011-957b-1cc1dee8bacd.html"; var link=“”; $('#link').mouseenter(函数(){ link=baseLink+“?R=“+Math.floor(Math.random()*1000000); $(“链接”).attr(“href”,链接); }); });
解决方案是将此处建议的内容结合起来,再加上必须将链接文本重置为我想要的内容。这就是成功的原因

<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>

var baseLink=“”;
var link=“”;
$(文档).ready(函数()
{
//向查询字符串添加时间戳参数,以防止用户打开页面的缓存版本
$('#link').mouseenter(函数()
{
变量日期=新日期();
link=baseLink+“?Timestamp=“+date.getTime();
$(“链接”).attr(“href”,链接);
$(“#链接”).text(baseLink);
});
});

谢谢大家。

我想我更喜欢使用日期。谢谢你的建议。我对更改href也有同样的想法,但这显然是正在发生的事情。我没有其他代码可以同步这两个。我在上面展示的几乎是页面上的所有代码。此页面的唯一目的是在CRM页面的iFrame中显示该url。状态消息不是我想要更改的。请参阅我对以下答案的评论。这是一个改进,当页面第一次加载链接时,链接显示正确,没有查询字符串参数。但是,当您第一次将鼠标悬停在该页面上时,查询字符串就会出现。我不认为我真的理解了这个问题,悬停链接时,查询字符串不应该显示在屏幕上,我看到您找到了答案,但仍然不明白为什么更改href属性会更改系统上的链接文本,因为它不应该这样做,在我的测试中,更改hret属性后不需要更改文本,一定是某个地方有一个奇怪的bug。我也不太理解它,因为我不认为更改href也会更改文本。经过一些思考,我认为更好的方法是在链接上使用preventdefault,然后在单击处理程序上运行一个函数来执行上述操作。我的测试表明,在正常点击时更改href属性的速度不够快,因此在加载新页面之前链接不会更改,这就是为什么我尝试使用mouseenter,但我认为使用preventdefault的点击事件会更好,但如果它起作用,它可能会起作用,而且可能不会有任何问题,只是说;-)单击正在为下一次单击而不是当前单击更改它。我有点喜欢这种方式,但在加载页面之前,我会用第一个随机数初始化链接。您可以单击并转到该链接,然后它将生成一个新链接。