0

我已经使用 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会有问题吗?

4

1 回答 1

0

这是供搜索引擎找到的。

您永远不应该制作一个对搜索引擎和用户表现不同的网站。更好的爬虫(例如谷歌)会努力检测这种欺骗行为,如果发现会严重惩罚你。

通过 location.href 传递信息应该没有什么问题

于 2013-06-25T01:34:14.953 回答