重定向到外部Javascript函数中的URL不起作用
Redirecting to URL in external Javascript function not working
我目前正在尝试编写一个相对简单的网站,但我的HTML和Javascript技能非常基础。基本上,我要做的是创建一个页面,其中向用户询问一个问题,他们通过将其键入表单来回答。使用外部Javascript函数,用户的答案与正确的答案进行比较,如果它们相同,则用户应该被重定向到不同的站点。这是我的HTML文档中的表单:
<FORM NAME="myform" ACTION="" METHOD="GET"> Answer:
<INPUT TYPE="text" NAME="inputbox" VALUE="">
<button onClick="checkAnswerExact(this.form)"> Submit </button>
</FORM>
我的Javascript函数看起来像这样:
function checkAnswerExact(form){
//GET ANSWER
var x = form.inputbox.value;
//CONVERT ANSWER TO STRING
var TestAnsw =x.toString();
//DEFINE RIGHT ANSWER
var RightAnsw = "rightanswer";
//CHECK IF THEY ARE THE SAME
if (TestAnsw.toLowerCase() == RightAnsw.toLowerCase() ){
alert("The answer is right.");
window.location.href = 'https://www.reddit.com/';
} //WHAT TO DO IF ANSWER'S RIGHT
else {
alert("The answer is wrong.");
} //WHAT TO DO IF ANSWER'S WRONG
}
作为将其重定向到的示例站点,我选择了reddit。警报工作正常,因此字符串的比较是可以的。我已经在谷歌上搜索了一段时间,并阅读了一堆论坛,但似乎没有什么对我有用。我已经尝试了document.location=url
,并且在if-else语句内部和外部window.replace(url)
,似乎没有任何效果,窗口只会重新加载。有效的是window.open(url)
,但我不希望它在新选项卡中打开。我正在使用Chrome作为我的浏览器,如果相关的话。
我需要一些帮助,我已经研究了几个小时,我很确定这可能是我犯的一些我看不到的错误。
干杯!
好吧,我只是弄清楚了你的代码的问题。使用按钮在 onClick 事件上添加返回假。所以你的代码会变成
<button onClick="checkAnswerExact(this.form); return false;"> Submit </button>
并且还更改
window.location.href = 'https://www.reddit.com/';
自
window.location = 'https://www.reddit.com/';
这应该可以解决问题。
<INPUT TYPE="text" id="inputbox" NAME="inputbox" VALUE="">
<button id="myButton">Submit</button>
<script type="text/javascript">
document.getElementById("myButton").onclick = function () {
var TestAnsw =document.getElementById("inputbox").value;
//DEFINE RIGHT ANSWER
var RightAnsw = "rightanswer";
//CHECK IF THEY ARE THE SAME
if (TestAnsw.toLowerCase() == RightAnsw.toLowerCase() )
{alert("The answer is right.");
location.href = "https://www.reddit.com/"}
//WHAT TO DO IF ANSWER'S RIGHT
else
{alert("The answer is wrong.");} //WHAT TO DO IF ANSWER'S WRONG
}
};
</script>
如本问题所述,您需要使用"_self"调用该函数:
window.open("https://www.reddit.com/", "_self");
这表明它必须在同一选项卡中打开,而不是打开一个新选项卡。这与在元素中设置target
a
相同。
您的按钮是一个提交按钮(如果未指定类型,则为默认值),因此如果您按下按钮(并在执行 onclick 处理程序之后),浏览器会为您的表单发送 GET 请求。只需将按钮定义更改为
<button type="button" onClick="checkAnswerExact(this.form)"> Submit </button>
它应该有效。
- window.open(url).print()在Safari中不起作用
- UI 路由器参数 URL 不起作用,只是重定向到 /
- JQuery 验证来自另一个域的 url 不起作用
- 画布到数据 URL 不起作用
- 使用 JavaScript 更新 URL 不起作用
- 将 iFrame 源设置为“查看源:{URL}”不起作用
- Python 重定向到 URL 不起作用
- JavaScript .replace() 部分的 url 不起作用
- 在 Flex 4.5 中替代导航到URL - 不起作用
- 重定向到外部Javascript函数中的URL不起作用
- Ember传输到URL不起作用
- javascript使用location.search获取url不起作用
- extjs表中的动态url不起作用
- 使用.ajax()加载远程URL-不起作用
- 在jquery中,react中的Add to link to URL不起作用
- 在单击提交表单时,重定向到URL不起作用
- 美元的位置.路径相同的url不起作用
- 在单个表中循环更改url不起作用
- 导航菜单中的外部URL不起作用
- iFrame src属性和相对url不起作用