我试图在select元素上打开一个基于onChange事件的窗口,而不会被Chrome的弹出窗口阻止程序阻止.
这里证明了这个问题.
https://jsfiddle.net/yyfe0824/1/
<select class="dropdown-select" onChange="window.open('https://www.google.com');">
<option value="uno">Uno</option>
<option value="dos">Dos</option>
<option value="tres">Tres</option>
</select>
<input type="button" onClick="window.open('https://www.google.com');" value="click me">
Run Code Online (Sandbox Code Playgroud)
window.open调用"单击我"按钮没有问题,但如果您尝试更改选择下拉列表,则chrome将阻止弹出窗口.
到目前为止,这个问题的答案已经特定于onClick事件.进行研究表明,如果Chrome检测到它不是通过某种处理程序触发的用户,Chrome会阻止弹出窗口,因此我特意尝试内联调用该函数,而不是使用其他命名函数.
这是window.open的预期行为,特别是onChange,如果有的话,是否有任何特定的解决方法?(除了首先将结构更改为点击事件.)