所以我需要使用 JavaScript 和 jQuery 打开从我的网站到其他网站的选项卡(我不能使用 <a>
标签作为要求)。链接来自数据库,所以我将用户点击的对象的标题设置为链接,然后在他们点击它时重定向它们,我有代码可以做到这一点:
<script language="javascript" type="text/javascript">
var RedirectCount = 0;
$(document).ready(function () {
$(".ResultRow").click(function () {
if ($(this).attr("title") != "")
{
window.open($(this).attr("title"), "Program" + RedirectCount, "");
RedirectCount = RedirectCount + 1;
}
});
});
</script>
所以这很好用,除了许多 URL 有 #
登录它们应该在目标页面上打开一个特定的选项卡。这适用于 Firefox,但 IE 8 删除了 #
在第二个选项卡打开之前标记。我还尝试使用内置的 JavaScript 重新编码 URL URLEncode
函数,ASP.NET 的 URLEncode
功能,并简单地替换 #
标志 %20
, 没有人执行正确的操作。
我无法访问其他浏览器,过去半小时我一直在谷歌搜索这个问题,但没有找到答案,所以我正在寻找这两个问题的答案:
是否有任何其他方法可以打开一个始终与
#
一起使用的新标签页?除了 window.open 或<a target="_blank">
标签?有多少浏览器没有正确执行此操作(尤其是 Google Chrome)?问题是否已在 IE9+ 中修复?
最佳答案
解决方案是Visual Studio 干扰了IE8 运行JavaScript 代码的方式,问题中列出的代码在正常情况下实际上可以正常运行。我不知道为什么,我也觉得弄清楚为什么并不重要,也许几年后有人会找到这个答案并添加到下面的评论中。
关于使用 hash/pound/# 的 JavaScript 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434096/