use*_*124 18 javascript window.location dom-events
我知道这是一个很多讨论的问题,但我无法弄清楚为什么它对我不起作用.
这是我的功能:
function ShowComments(){
alert("fired");
var movieShareId = document.getElementById('movieId');
//alert("found div" + movieShareId.textContent || movieShareId.innerText);
//alert("redirect location: /comments.aspx?id=" + movieShareId.textContent || movieShareId.innerText + "/");
window.location.href = "/comments.aspx?id=" + movieShareId.textContent || movieShareId.innerText + "/";
var newLocation = window.location;
//alert("full location: " + window.location);
}
Run Code Online (Sandbox Code Playgroud)
如果我取消注释警报或者我打开了mozilla的bugzilla,它可以正常工作,否则它不会重定向到另一页.
有什么想法吗?
小智 40
如果您通过提交按钮调用此功能.这可能是浏览器不重定向的原因.它将运行函数中的代码,然后提交页面而不是重定向.在这种情况下,请更改按钮的类型标签.
Sru*_*Suk 15
从这个答案,
你只需要添加
return false;
Run Code Online (Sandbox Code Playgroud)
在你的功能的底部
虽然这是一个非常古老的问题,但我想回答一下,因为我最近遇到了同样的问题并从这里得到了解决方案 -
http://www.codeproject.com/Questions/727493/JavaScript-document-location-href-not-working 解决方案:
document.location.href = 'Your url',true;
Run Code Online (Sandbox Code Playgroud)
这对我有用.
缺少一些括号。
更改
window.location.href = "/comments.aspx?id=" + movieShareId.textContent || movieShareId.innerText + "/";
Run Code Online (Sandbox Code Playgroud)
至
window.location = "/comments.aspx?id=" + (movieShareId.textContent || movieShareId.innerText) + "/";
Run Code Online (Sandbox Code Playgroud)
与||相比,没有优先级+。
window.location分配后也删除所有内容:随着页面的更改,不应执行此代码。
注意:您不需要设置location.href。设置就足够了location。
您不能使用window.location.replace或document.location.href或 任何您最喜欢的普通 javascript 方法将页面重定向到其本身。
因此,如果您从后端动态添加重定向路径,或从数据标记中提取重定向路径,请确保在某个阶段检查是否重定向到当前页面。它可以很简单:
if(window.location.href == linkout)
{
location.reload();
}
else
{
window.location.href = linkout;
}
Run Code Online (Sandbox Code Playgroud)
window.location.replace是模拟重定向的最佳方法:
function ShowComments(){
var movieShareId = document.getElementById('movieId');
window.location.replace("/comments.aspx?id=" + (movieShareId.textContent || movieShareId.innerText) + "/");
}
Run Code Online (Sandbox Code Playgroud)
有关为什么是最好的 javascript 重定向的更多信息可以在此处window.location.replace找到。
| 归档时间: |
|
| 查看次数: |
106356 次 |
| 最近记录: |