簡體   English   中英

如何停止在 shadow dom 中傳播?

[英]How to stop propagation in shadow dom?

我正在做一個擴展,有時會在頁面上創建一個影子 dom。 在這個 shadow dom 中,我有一個輸入,用戶可以在其中輸入內容,但在某些頁面上,例如 GitHub,如果用戶輸入“s”,它不會出現在我的輸入中,而是 GitHub 的搜索字段成為焦點。 我嘗試了 event.stopPropagation() 但沒有成功

我該如何防止這種行為?

一些站點會監聽keyupkeydownkeypress事件之一,因此您需要防止所有這些事件的傳播。 此外,一些站點在capture階段捕獲事件,因此您也需要考慮到這一點:

      <input
            onKeyDown={(e) => {
              e.stopPropagation()
            }}
            onKeyUp={(e) => {
              e.stopPropagation()
            }}
            onKeyPress={(e) => {
              e.stopPropagation()
            }}
            onKeyDownCapture={(e) => {
              e.stopPropagation()
            }}
            onKeyUpCapture={(e) => {
              e.stopPropagation()
            }}
            onKeyPressCapture={(e) => {
              e.stopPropagation()
            }}
            required={true}
            style={inputStyles}
            autoFocus={true}
            id="title"
            key="title"
            name="title"
            type="text"
            value={title}
            onChange={handleTitleChange}
            placeholder="Enter Title"
          />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM