我浏览了几篇类似的帖子但没有找到答案。我有一个我想要显示的链接。
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就在那里,应该显示但不是。
请告诉我我愚蠢的地方。
答案 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>