在html GlobalEventHandlers中是否已弃用onChange或onClick?

时间:2016-01-29 02:11:26

标签: javascript jquery html dom

我看到它在网站上使用所以我不确定。我可以在我的html中使用OnChange和onClick吗?我有点困惑,我认为javascript在html中被弃用了?但是,我认为这两个动作都属于DOM GlobalEventHandlers?我认为jquery使用它很多,所以我应该没问题?

<select id="select" class="button" onChange=getValue()>

我认为在html中不使用js的意思是

<p javascript:code> </p>

好吧,我收到了一个错误,但我认为它与chrome扩展的工作方式有关。我将不得不研究这个:

拒绝执行内联事件处理程序,因为它违反了以下内容安全策略指令:“script-src'self'blob:filesystem:chrome-extension-resource:”。要启用内联执行,需要使用'unsafe-inline'关键字,散列('sha256 -...')或nonce('nonce -...')。

2 个答案:

答案 0 :(得分:7)

听起来您正在撰写Google Chrome扩展程序。您不能在用于扩展页*的安全模型下使用任何内联事件处理程序(即onEvent属性)。所有事件都必须通过Javascript代码设置,例如

document.getElementById("select").addEventListener("change", getValue);

或者,如果你正在使用jQuery:

$("#select").change(getValue);

*:具体来说,the Content Security policy for Chrome extensions

答案 1 :(得分:2)

你可以在html中使用onclick,你必须写一个onclick会做的javascript函数。使用onclick不需要jQuery,你只需要做纯javascript。

HTML

<button onclick="foo()">Do something</button>
<p id="foo"></p>

JS

function foo() {
    document.getElementById("foo").innerHTML = "Foo";
}