MVCE スニペットを Firefox デスクトップと Chrome デスクトップで実行します。
に貼り付けます。
クリップボード データには
<b>foobar</b>
(
実際に貼り付けられた HTML では、b
要素に
ソースのクリップボード データでフォント サイズが指定されていないため、貼り付けた HTML にフォント サイズを設定しないでください。
質問:
ソース HTML にフォント サイズがない場合に、貼り付けた HTML にフォント サイズを設定しないように Chrome に強制するにはどうすればよいですか?font-size: unset回避策として、ソース上で font-size: unset/revert
を設定しましたが、その結果、貼り付けられた HTML の中央にも
が表示されてしまいました。貼り付けた HTML にフォント サイズを表示したくないのです。
このコードのコンテキストは、ターゲットに貼り付けられるテキスト/HTML データを制御する Chrome 拡張機能です。ターゲットの contenteditable に貼り付けイベント リスナーをアタッチできますが、貼り付けた後にコンテンツの HTML/スタイルを変更することはできません。
貼り付けイベントをインターセプトし、貼り付けられたコンテンツを変更して、js を使用して強制的にプレーン テキストとして貼り付けるようにします。
contenteditable
div にid="editor"
の ID を追加しました。そして、次の js コードを追加します:これは実行中のスニペットです。これで問題が解決したかどうかをお知らせください:
を使用して API を選択できます。
手順は
Range
オブジェクトを取得します。createContextualFragment()
メソッドにより、この
Range オブジェクトを使用して、貼り付けられた HTML マークアップをDocumentFragment
オブジェクトに解析します。)。
window.onload = function() { const info = document.querySelector('.info'), pinfo = document.querySelector('.paste-info'), ターゲット = document.querySelector('.target'); setInterval(() => { const sel = ".source *, .target *" info.innerHTML = ''; for (const elm of [...document.querySelectorAll(sel)]) { info.innerHTML = "TAG: " elm.tagName "; TEXT: " elm.innerText "; FONTSIZE: " window.getComputedStyle(elm)['font-size'] "