javascript - window.open 是 javascript 还是 html?

标签 javascript window

<input type="button" onClick="window.open('newstudent.php');"/>

这段代码可以正常工作,没有 script 标签,为什么?

最佳答案

在元素的内联事件处理程序中,如 onclick , onchange , onsubmit等,您不需要需要 javascript:前缀 - 您经常看到它的原因是人们将它与 href 混淆了我在下面解释的语法。它不会导致错误 - 我相信它被解释为 label - 但这是不必要的。

不管你是想调用一个函数还是运行一个“简单”的 JS 语句,无论哪种方式都不要包含 javascript: - 也就是说,所有这三个都是有效的:

onclick="doSomething('some val');"
onclick="return false;"
onclick="doSomething(); doSomethingElse(); return false;"

如果您使用内联事件属性,请不要使用 javascript:前缀。

(我说“如果您正在使用内联事件属性”,因为这种做法确实过时了:最好在脚本 block 中使用 JS 分配事件处理程序。)

您只需要 javascript:当你想从 <a> 运行 JavaScript 时添加前缀元素的 href像这样的属性:

<a href="javascript: someFunc();">Whatever</a>

那是因为浏览器通常期望 href包含一个 URI,所以 javascript:前缀告诉它期待 JS 代码。但是,我不建议这样做,因为该页面不适用于禁用 JS 的人。最好包括 href将用户定向到一个页面,告诉他们启用 JS,并包含 onclick执行 JS 功能:

<a href="/enableJS.html" onclick="doSomething(); return false;">Whatever</a>

这样,无论用户是否启用了 JS,链接都会为用户提供一些有用的东西。 return false在点击处理程序的末尾阻止点击的默认行为(导航到指定的 URL)。

关于javascript - window.open 是 javascript 还是 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17628944/

相关文章:

javascript - 如何将 Firestore 文档中的所有数据显示到 html 元素中

javascript - respond_to 和 redirect_to 未按预期工作

java - Stage 的监听器最小化、最大化等

vim - 烦人的 vim 标签行标签

javascript - 单击外部链接后重定向并仅打开一个选项卡/窗口

javascript - 使用模式匹配时的 jQuery 选择器优先级

javascript - Node http-proxy 不在代理后面工作

javascript - Highcharts:平滑添加点到折线图

java - 如何检测新窗口何时打开和/或获取打开的窗口列表?

WPF:类似浏览器的撕裂