2017-09-18 14 views
0

(HTML拡張機能を使用してページに注入された)簡単なJavaScriptコードを作成しようとしています。インタラクティブなユーザーに見えるように)、私はコントロールのユーザーのクリックをシミュレートすることを考えました。 JavaScriptを使用してボタンでクリックイベントをトリガーすることはできますが、SELECTコントロールは自分の試行を拒否します。JavaScriptを使用してHTML SELECTコントロールをクリックしてシミュレートすることができません

function triggerClick(domElmId) { 
    let domElm = document.getElementById(domElmId); 
    triggerEvent(domElm, 'mouseover'); 
    triggerEvent(domElm, 'mousedown'); 
    triggerEvent(domElm, 'click'); 
    triggerEvent(domElm, 'mouseup'); 
} 
function triggerEvent(domElm, eventName) { 
    let options = {pointerX: 0, pointerY: 0, button: 0, ctrlKey: false, altKey: false, shiftKey: false, metaKey: false, bubbles: true, cancelable: true}; 
    let eventType = 'MouseEvents'; 
    let oEvent = null; 
    oEvent = new MouseEvent(eventName, options); 
    domElm.dispatchEvent(oEvent); 
} 

コード例:https://codepen.io/anon/pen/mBegaq

任意のアイデア?

答えて

0

ブラウザはjavacriptで<select>を展開することを許可していません。その後、マウスでクリックするだけで拡張できます。

しかし、実際にこれを行う必要がある場合。解決方法があります:https://code.google.com/archive/p/expandselect/

これは、複数のオプションがすべて同時に表示されている別の<select>を作成することによって機能します。これは、古いコントロールの上に配置されます。

代わりに、いくつかのアイデアのためにこの質問を見てみましょう:Is it possible to use JS to open an HTML select to show its option list?

+0

感謝を!この動作がSELECTコントロールに固有であるかどうか知っていますか、またはシミュレートされたJSクリックを拒否する他のHTMLコントロールがありますか? –

+0

良い質問です。私は正直であると確信していません。 'select'は私が今までに遭遇した唯一のものです – DNKROZ

関連する問題