OnClick用于锚标记,通过IE8中的搜索字符串传递数据

时间:2013-06-24 19:20:40

标签: javascript url internet-explorer-8 onclick anchor

我已经使用了onclick事件处理程序一段时间,以便在我的网站中从页面到页面传递一个简单的字母数字字符串。

示例HTML链接是:

<a href="dir/newapge.html" onclick="idemo('dir/newpage.html'); return false;">

当onclick返回false时,它会导致浏览器忽略href ...这是搜索引擎可以找到的。

我的idemo函数只是将ID作为查询字符串添加到URL中,如下所示:

function idemo(whereto)
{
  location.href = whereto + "?" + escape(my_id_is);
}

变量my_id_is已被声明,并在此之前设置为一个简单的字母数字字符串,例如“myId”。它显示在网页上,对alert()的调试调用确认,当调用idemo()时,my_id_is正确保存了预期的字符串。

我的问题是,使用IE8这种将Id传递到新页面的简单方法并不总是有效。有时,尽管调用idemo使用正确的搜索字符串构造正确的URL,但IE8中显示的页面不包含搜索字符串...好像它已恢复为使用锚标记href值。

例如,不是显示页面“dir / newpage.html?myId”,它只显示“dir / newpage.html”...注释,甚至没有问号字符。

我的代码适用于以前版本的IE(我相信),适用于Firefox。

我想我的问题归结为......通过将location.href设置为包含锚标签onclick事件处理程序中的查询字符串的URL,可以在网页之间传递数据,如果是这样,你能想到吗? IE8会出现问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

  

可供搜索引擎查找。

你永远不应该建立一个对搜索引擎和用户采取不同行为的网站。 更好的抓取工具(例如谷歌)努力工作来检测这种欺骗行为,并且如果找到则会严重惩罚你。

通过location.href传递信息应该没有任何问题