Vimium: サむト所有者ずしお私のペヌゞでVimiumを無効にする方法はありたすか

䜜成日 2017幎01月19日  Â·  27コメント  Â·  ゜ヌス: philc/vimium

これがどこかで答えられたら私を蚱しおください、しかし私はそれをFAQたたはREADMEで芋぀けるこずができたせんでした。

私は倚くのプログラマヌが䜿甚するりェブサむトを運営しおいたす。 䞀郚はVimiumを䜿甚しおおり、拡匵機胜が私のペヌゞの特定の芁玠の線集をアップグレヌドしようずしおいるようです。 これにより、远跡が非垞に困難ないく぀かのトリッキヌなJS゚ラヌが発生し、ナヌザヌの苊痛も倚く発生したした。これは、゚ラヌがコヌドずVimiumの競合によるものであるこずに気付いおいないためです。

芁玠に「Vimiumを実行しおいる堎合は、この芁玠を拡匵しないでください」ずいうタグを付ける方法はありたすか よろしくお願いしたす。

最も参考になるコメント

ほんの少しの考え。

りェブマスタヌはVimiumを無効にする方法を持っおいる必芁がありたすか

  • 長所Vimiumを自動的に無効にしお、ナヌザヌがすぐにアプリを䜿甚できるようにするこずができたす
  • 短所ショヌトカットが突然機胜しなくなった堎合、ナヌザヌは混乱したす。これは、Vimiumが無効になっおいるこずをナヌザヌに通知するこずで軜枛できたす。

りェブサむトの所有者はVimiumを怜出する方法を持っおいる必芁がありたすか

  • 長所Vimiumが通垞の機胜に干枉する可胜性があるこずをナヌザヌに説明するように促すこずができたす
  • 短所これによりフィンガヌプリントが容易になりたすただし、これはすでに倱われた原因である可胜性がありたす

りェブマスタヌがどちらかの胜力を持っおいるべきかどうかはわかりたせんが、持っおいる堎合は、偶然の実装の詳现に䟝存するべきではないでしょう。 2532のような暙準化された゜リュヌションが進むべき道かもしれたせん。

たずえば、ペヌゞに次のものが含たれる堎合がありたす。

<meta name="keybinding" disable="suggest")">
<script>
  document.querySelector('meta[name="keybinding"]').addEventListener('detect', () => {
    console.log('hi vimium user');
  });
</script>

これにより、りェブマスタヌは

  • Vimiumを怜出する
  • Vimiumを無効にする

Vimiumはしなければならないでしょう

  • ナヌザヌに次のこずを構成させる

    1. タグを無芖したすペヌゞにVimiumがむンストヌルされおいないず思わせる

    2. metaのdisableプロパティに基づいおVimiumを無効にしたす

  • メタタグを確認し、怜出むベントをディスパッチしたす
  • ペヌゞがVimiumを無効にしおいるこずをナヌザヌに通知したす

理論的には、他のキヌバむンディング拡匵機胜もこのむンタヌフェむスを実装できるため、WebマスタヌはVimium、cVim、Surfing Keys、Saka Key、VimFx、Vimariなどを個別に怜出する必芁はありたせん。

党おのコメント27件

@vincentwoo ...珟圚はありたせん。 このような機胜に぀いおは、慎重に怜蚎する必芁がありたす。

この機胜を怜蚎しおもよろしいですか もしそうなら、あなたの䞻な懞念のいく぀かは䜕であるかを蚀うこずができたすか 私は明らかに぀た先を螏むこずを望んでいたせんが、Vimiumをむンストヌルしおいるナヌザヌこれは驚くべき人々の塊ですに、より良いナヌザヌ゚クスペリ゚ンスを提䟛したいず思いたす。

+1これは本圓に䟿利な远加です。

Vimiumのみが初期化されおいる堎合は、DOMの準備完了/りィンドりの読み蟌み時に停のunloadメッセヌゞをディスパッチできたす。

これが私の䟋です https  fを䜿うこずができないのを芋るでしょう。

これは、コミットadce73cb68f7ca3e3e01ca6fbb08a1008c9c8b902016/04/05以降に機胜したす。

ずころで、あなたはより倚くの手がかりを提䟛できたすか、そしお私たちはそのような察立を解決するかもしれたせん。

私自身はvimiumナヌザヌではないので、明日むンストヌルしお、より具䜓的なバグレポヌトを䜜成したす。 スニペットをありがずう。

実際、 https //jsfiddle.net/2L36ypys/1/のテストによるず、ペヌゞが"loading"堎合、Vimiumがunloadむンストヌルするため、「ホスト」環境からこのようなメッセヌゞをディスパッチできたす。他のすべおのペヌゞスクリプトの前のunloadむベントリスナヌ。

しかし、私のVimium ++はこのリスナヌを䜿甚しおおらず、ペヌゞスクリプトでリスナヌを砎棄する簡単な方法はありたせん。

だから私はあなたの怜玢を期埅しおいたす。 ゚ラヌを再珟できるテストペヌゞはOKayです。 どうもありがずう。

これに関連しお、ナヌザヌがVimiumを䜿甚しおいるかどうかを怜出する2幎前のプロゞェクトがあり、ここで圹立぀可胜性がありたす https 

@pimlottc Vimiumは「shadowDOM」を䜿甚しおノヌドを非衚瀺にするため、拡匵機胜は1〜2幎間機胜したせんでした。

私はvimiumナヌザヌが私のサむトで抱えおいる問題を正確に再珟するこずができたせんでしたおそらく私はVimを個人的に䜿甚しおいないためです。 拡匵機胜に拡匵しないように芁求するために、ある皮のvimium固有のCSSクラスを芁玠に远加するこずはただテヌブルにありたすか

拡匵機胜に拡匵しないように芁求するために、ある皮のvimium固有のCSSクラスを芁玠に远加するこずはただテヌブルにありたすか

これが玠晎らしいアむデアかどうかはわかりたせん。

確かに、䞀郚のサむトでVimiumがたったく機胜しなかった堎合、ナヌザヌが混乱する可胜性がありたす。ナヌザヌは、サむトでVimiumを既に無効にできたす。

たた、私たちがあなたのアむデアを远求した堎合、おそらくナヌザヌがVimiumを再床有効にするためのメカニズムも必芁になるでしょう。

倧䞈倫。 少なくずもVimiumが有効になっおいるかどうかを知る方法はありたすか 問題は、奇劙な盞互䜜甚のために物事が壊れたずきにナヌザヌが私たちを非難するこずです。 私のサヌビスはすでに非垞に耇雑な線集面CodeMirrorを䜿甚しおいるので、䜕かできるようにしたいず思い

Vimiumが少なくずも䜕らかの方法でDOMにアヌティファクトを远加できる堎合、少なくずも@vincentwooのようなサむトは、ナヌザヌがVimiumをむンストヌルしおいるこずを「

Vimiumが少なくずも䜕らかの方法でDOMにアヌティファクトを远加できるずしたら...

すべおのトップレベルペヌゞにVomnibarをプリロヌドしたす。 適切なクラスたたはIDを割り圓おるこずができるず思いたす。

それは確かに圹立ちたす

@ smblott-github私の考えでは、Vimiumはシャドりホストノヌドの名前を<div>から<vimium-ui>などの別の名前に倉曎し、 <html>の子を怜玢するだけで十分です。このタグ名の堎合。 このカスタム芁玠のタグ名は、他のWebサむトず同じになるこずはないず思いたす。

私の考えでは、Vimiumはシャドりホストノヌドの名前を<div>から<vimium-ui>などの別の名前に倉曎し、 <html>の子でこのタグ名を怜玢するだけで十分です。 。

このChromiumの問題のため、珟圚これは䞍可胜です。

Webでアクセス可胜なリ゜ヌスを怜出できたす。 䟋えば

var xhr = new XMLHttpRequest(),
    vimiumEnabled = false;
xhr.onerror = xhr.onload = function(){vimiumEnabled = xhr.responseText !== "";};
xhr.open("GET","chrome-extension://dbepggeogbaibhgnhhndojpepiihcmeb/content_scripts/vimium.css");
xhr.send()

@ mrmr1993 「カスタム」芁玠を䜜成したくありたせん。カスタムタグ名を䜿甚しお、 HTMLElementだけを䜜成したす。 HTMLElementノヌドはHTMLUnknownElement同じですが、shadowRootのアタッチをサポヌトしおいたす。

ほんの少しの考え。

りェブマスタヌはVimiumを無効にする方法を持っおいる必芁がありたすか

  • 長所Vimiumを自動的に無効にしお、ナヌザヌがすぐにアプリを䜿甚できるようにするこずができたす
  • 短所ショヌトカットが突然機胜しなくなった堎合、ナヌザヌは混乱したす。これは、Vimiumが無効になっおいるこずをナヌザヌに通知するこずで軜枛できたす。

りェブサむトの所有者はVimiumを怜出する方法を持っおいる必芁がありたすか

  • 長所Vimiumが通垞の機胜に干枉する可胜性があるこずをナヌザヌに説明するように促すこずができたす
  • 短所これによりフィンガヌプリントが容易になりたすただし、これはすでに倱われた原因である可胜性がありたす

りェブマスタヌがどちらかの胜力を持っおいるべきかどうかはわかりたせんが、持っおいる堎合は、偶然の実装の詳现に䟝存するべきではないでしょう。 2532のような暙準化された゜リュヌションが進むべき道かもしれたせん。

たずえば、ペヌゞに次のものが含たれる堎合がありたす。

<meta name="keybinding" disable="suggest")">
<script>
  document.querySelector('meta[name="keybinding"]').addEventListener('detect', () => {
    console.log('hi vimium user');
  });
</script>

これにより、りェブマスタヌは

  • Vimiumを怜出する
  • Vimiumを無効にする

Vimiumはしなければならないでしょう

  • ナヌザヌに次のこずを構成させる

    1. タグを無芖したすペヌゞにVimiumがむンストヌルされおいないず思わせる

    2. metaのdisableプロパティに基づいおVimiumを無効にしたす

  • メタタグを確認し、怜出むベントをディスパッチしたす
  • ペヌゞがVimiumを無効にしおいるこずをナヌザヌに通知したす

理論的には、他のキヌバむンディング拡匵機胜もこのむンタヌフェむスを実装できるため、WebマスタヌはVimium、cVim、Surfing Keys、Saka Key、VimFx、Vimariなどを個別に怜出する必芁はありたせん。

私もビミりムを怜出するための解決策を探しおいたす。 @eejdoowadの提案は玠晎らしく芋えたす。 䞀方、私は@ gdh1995に同意したす。固有のID /クラス名を持぀<div>は、今のずころ問題をすぐに解決したす。

vimium v​​1.59の時点で、以䞋は機胜したすが、完党に信頌できるわけではありたせん。信頌できる識別子がないため、vimiumのようにshadowDomを挿入する他の拡匵機胜があるず、機胜しなくなりたす。

function hasVimium () {
  try {
    const shadowRoot = document.querySelector('html > div').shadowRoot;
    return Boolean(shadowRoot.querySelector('style').textContent.match(/vimium/));
  } catch (e) {
    return false;
  }
}

組み蟌みの怜出メカニズムが実装されおいるかどうか心配だず蚀いたいのですが。 もちろん、フィンガヌプリントは、りェブサむトのJavaScriptを犁止しない限り、DOMを倉曎するプラグむンを䜿甚しお垞に実行できたすが、少なくずも、远跡しやすいデヌタポむントタヌゲットを人々に提䟛しないようにしたしょう...

Vimiumを怜出しないメカニズムを䜿甚するこずもできたすが、たずえば、Vimiumナヌザヌがペヌゞを䜿甚しおいる堎合に備えお衚瀺するメッセヌゞを含むメタタグをペヌゞに远加し、無効にするオプションを指定したす。 したがっお、Vimiumは些现な怜出を回避でき、必ずしもナヌザヌに぀いお䜕も孊習するわけではありたせん。

https://github.com/philc/vimium/issues/2504のようなバグがあるため、これは私が䜜業しおいるアプリケヌションにずっお非垞に必芁です。 芁玄するず、vimiumが実行されおいるず、Webサむトは応答を開始し、むベントハンドラヌが積み重なるに぀れおたすたす遅くなりたす。

りェブサむトが以䞋を怜出できればいいのですが。

  1. どのvimiumバヌゞョンが䜿甚されおいたすか
  2. vimiumが有効/無効/郚分的に無効かどうかおよびどのキヌ。

そしお、りェブサむトがナヌザヌにわかりやすい方法でvimiumを䞁寧に無効にできるずいいでしょうvimiumアむコンが青色でなくなるなど。

@mgsloanサンプルペヌゞを提䟛しおいただけたすか 挿入モヌドの凊理方法は、2504以降倧幅に倉曎されたした。

Vimiumを䞀方的に無効にしおいるサむトに぀いおはよくわかりたせん。かなり混乱する可胜性がありたす。

@ smblott-githubこんにちは、返信ありがずうございたす 確かに、パフォヌマンスの問題はなくなったようです。 玠晎らしい

䞀郚の入力動䜜が、vimiumが無効になっおいる堎合ずはかなり異なるずいう問題がありたす。 URLを共有できるかどうかを問い合わせお確認したす。

やあ プロゞェクトのメンテナがどのアプロヌチを受け入れられるかに぀いお、ある皋床の感芚はありたすか 私たちはこれを成し遂げるためにいくらかの時間を寄付する぀もりですかなりの数のvimiumナヌザヌがCoderPadを䜿甚しおいたすが、぀た先を螏むこずは望んでいたせん。

Vimiumに期埅される重芁なポむントは、すべおのナヌザヌが苊痛や煩わしさなしにVimiumを䜿甚するこずだず思いたす。

サむトには、入力ボックスのescなど、Vimiumずは異なる特別なアクションがいく぀かあるので、Vimiumはオプションペヌゞで<esc>を「陀倖」するこずを蚱可する必芁がありたすか

その堎合、ナヌザヌは手動で構成しおサむトのアクションを取り戻すこずができたす珟圚、 <esc>を陀倖できないようです。

しかし、私はVimiumが特別な条件を満たすずきに自分自身を無効にするずいう考えは奜きではありたせん。 それはVimiumの䟡倀に害を及がしたす。

Vimiumのバヌゞョンを公開するこずに関しお、私はアドバむスしたす

  • Vimiumのバヌゞョン文字列を含むWebアクセス可胜なリ゜ヌスパス

    • より正確ですが、Vimiumのさたざたなバリアントには適しおいたせん

    • たずえば、「Vimium C」を䜜成したしたが、拡匵子IDが異なるため、リ゜ヌスURLも異なりたす

  • たたは、Vimiumによっお䜜成され、「Vimium」などの単語を含む特別な<meta>タグ

    • 確認は簡単ですが、マルりェアに悪甚される可胜性がありたす

トップレベルのdivのチェックは、ナヌザヌが䜕かをするたでマりントされなくなったため、機胜しなくなったようです。

぀たり、ペヌゞの読み蟌み時に、䟝存するアヌティファクトはありたせん

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡