我已经使用了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会出现问题的原因是什么?
答案 0 :(得分:0)
可供搜索引擎查找。
你永远不应该建立一个对搜索引擎和用户采取不同行为的网站。 更好的抓取工具(例如谷歌)努力工作来检测这种欺骗行为,并且如果找到则会严重惩罚你。
通过location.href传递信息应该没有任何问题