Jquery 使用click()模拟url/href并创建错误位置
我创建了一个列表,其中包含一些应该可以单击的元素。它不是一个简单的文本,而是一个表格行,所以我想使用单击功能 我就是这样做的:Jquery 使用click()模拟url/href并创建错误位置,jquery,firefox,click,location,Jquery,Firefox,Click,Location,我创建了一个列表,其中包含一些应该可以单击的元素。它不是一个简单的文本,而是一个表格行,所以我想使用单击功能 我就是这样做的: function PrepareServerItem(item, server) { item.attr("id", "srv" + server.id); if (server.status == 0) item.click(function() { window.location = "cndr://" + server.url; }); r
function PrepareServerItem(item, server)
{
item.attr("id", "srv" + server.id);
if (server.status == 0) item.click(function() { window.location = "cndr://" + server.url; });
return item;
}
function CreateServerItem(server)
{
return PrepareServerItem(serverItem.clone(true), server);
}
[....]
$("#someid").before(CreateServerItem(server));
cdnr是由外部程序定义的url协议。这种方法在chrome上仍有一个错误-
得到cndr://JCMCFCMCCCMFJSRDBBF
未定义未定义
但是它用正确的参数打开了外部程序,但我在firefox中遇到了以下错误:
未捕获异常:[异常。。。
故障nsresult:0x80004005
NS\u错误\u故障位置:JS
frame::我的internet地址::
匿名::第186行数据:否]
是否更改位置会删除当前文档以及脚本需要的某些内容?如何解决此问题?您是否尝试过使用window.open,如果您担心使用它会带来更好的结果。location?window.open可以正常工作,但不会显示错误消息,但会打开一个新选项卡。CDNR url协议的链接在两种浏览器上都有效吗?啊。我认为现在的浏览器如果意识到它实际上是一个外部应用程序,或者是一个下载或类似的应用程序,就不会真正打开标签。如果您不需要它来打开新选项卡,也不需要它来替换当前页面,那么隐藏iframe可能适合您,即创建隐藏iframe,在其中加载url,浏览器将其识别为外部应用程序并打开它,您的页面不会被卸载,您可以删除iframe或将其留到下次单击时使用。否,必须先把它变成一个答案。