Javascript jquery中创建的url重定向到并打开一个新选项卡
这段代码运行得很好,但它有一个让我吃惊的副作用:当我点击链接时,一个新的标签页打开了一个好的链接。但是主窗口也会加载好的url。为什么它会打开一扇新的窗户 编辑 根据要求的新代码:Javascript jquery中创建的url重定向到并打开一个新选项卡,javascript,jquery,Javascript,Jquery,这段代码运行得很好,但它有一个让我吃惊的副作用:当我点击链接时,一个新的标签页打开了一个好的链接。但是主窗口也会加载好的url。为什么它会打开一扇新的窗户 编辑 根据要求的新代码: $('#resultsDiv').on('click', '#seeTemplates', function () { var ebayTemplate = $('#templates').val(); var url = '@Url.Action("SeeTemplateDetailsByName
$('#resultsDiv').on('click', '#seeTemplates', function () {
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
});
我现在正在调查两种可能性:
windows.location.href
jquery调用的正常行为吗尝试此操作,添加函数(e)和e.preventDefault()将停止浏览器的默认操作:
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
e.preventDefault();
alert("Clicked");
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
});
尝试此操作,添加函数(e)和e.preventDefault()将停止浏览器的默认操作:
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
e.preventDefault();
alert("Clicked");
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
});
因为#seemplates
是一个链接(每个操作注释),所以默认链接操作和自定义事件处理程序都在运行。要避免这种情况,您需要防止链接的默认行为:
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
e.preventDefault();
});
您还可以将元素更改为其他类型(可能是
),并完全避免问题。因为#seemplates
是链接(根据操作注释),默认链接操作和自定义事件处理程序都在运行。要避免这种情况,您需要防止链接的默认行为:
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
e.preventDefault();
});
您也可以将元素更改为其他类型(可能是
),并完全避免问题。我无法评论(因为这里是新的),因此您可能希望尝试在那里添加e.preventDefault()
以防止/阻止默认操作(还有其他方法)
如果你想用JavaScript打开一个新标签,试试这个
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
e.preventDefault();
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
});
我希望这会有所帮助。我无法评论(因为这里是新的),因此您可能希望尝试在那里添加e.preventDefault()
以防止/阻止默认操作(还有其他方法)
如果你想用JavaScript打开一个新标签,试试这个
$('#resultsDiv').on('click', '#seeTemplates', function (e) {
e.preventDefault();
var ebayTemplate = $('#templates').val();
var url = '@Url.Action("SeeTemplateDetailsByName", "EbayTemplate")';
window.location.href = url + "?templateName=" + ebayTemplate;
});
我希望这有帮助。是
#seemplates
元素吗?是的!锚点是否有这种行为?可能您的锚点上有target=“\u blank”。这将导致它在一个新窗口中打开。不,我已经在case中检查了这个问题,锚点是这样的:
如果删除所有附加代码并将e.preventDefault()留在那里会发生什么。它是否仍在新窗口中打开?#请参阅Templates
是否为
元素?是的!锚点是否有这种行为?可能您的锚点上有target=“\u blank”。这将导致它在一个新窗口中打开。不,我已经在case中检查了这个问题,锚点是这样的:
如果删除所有附加代码并将e.preventDefault()留在那里会发生什么。它是否仍在新窗口中打开?奇怪的是,这并没有停止该行为,尽管我知道您的代码确实应该停止它|和你的一模一样。不管怎样,请发帖,只是为了确保。我真傻!有另一段代码以同样的方式交互。去掉另一块,留下你的,一切都很好。谢谢奇怪的是,这并没有停止该行为,尽管我知道您的代码确实应该停止它|和你的一模一样。不管怎样,请发帖,只是为了确保。我真傻!有另一段代码以同样的方式交互。去掉另一块,留下你的,一切都很好。谢谢