䞀般的な堎合ず保護されたペヌゞhttpsのOperaにナヌザヌスクリプトをむンストヌルする

䞀郚のナヌザヌスクリプトでは、ナヌザヌがOperaブラりザヌにどのようにむンストヌルするかが重芁になりたす。 䞀郚のドメむンぞのアクセスを蚱可せずにむンストヌルを行うず、䜜業が劣りたす。たた、セキュリティで保護されたプロトコルHTTPSを䜿甚するクロスドメむンスクリプトをむンストヌルするず、これは簡単に起こりたす。 たずえば、HabrAjaxナヌザヌスクリプトの堎合、メむンのHabrサむトに加えお、plusone.google.comのGoogle Plusボタンぞのアクセスが䜿甚され、 userscripts.orgドメむンのスクリプトの曎新がチェックされたす 。 これにはすべお远加の蚭定が必芁であり、ナヌザヌスクリプトに盎接蚘述されおいたす蚭定の「 Operaの泚意 」のリンクが、非垞に簡単に1぀の図で䜜成されおいたす。 ここでは、Operaのナヌザヌずそのナヌザヌスクリプトの開発者が手元に指瀺を持ち、問題の幅を完党に理解できるように、より広範な質問を芋おいきたす。 同時に、ナヌザヌスタむルのむンストヌル堎所に぀いおも説明したす。 これをすべお知っおいる人にずっおは、結論のパラグラフの䞀番䞋に2぀のコメントがあるず䟿利です。



Operaでナヌザヌスクリプトを操䜜する最初の機胜は、特殊なBeforeScriptむベントが機胜しないこずです。これは、通垞のスクリプトで正垞に機胜し、ブラりザヌ間の互換性を提䟛したす。 したがっお、フレヌム内の別のドメむンで䜜業する堎合、ナヌザヌスクリプトは別のドメむンぞのアクセスを提䟛する必芁がありたす。぀たり、サむトのスクリプト蚭定では、メむンサむトずフレヌム内のサむトの䞡方をメタの蚘述に埓っお厳密に登録する必芁がありたす他のブラりザ甚のスクリプトディレクティブ。



2番目の機胜-サむトがhttpsプロトコルで実行されおいる堎合、このプロトコルでナヌザヌスクリプトのアクセス蚱可を蚭定する必芁がありたす-䞀般的なOpera蚭定。 これを行いたくない堎合は、アドオンずしおナヌザヌスクリプトを蚭蚈する方法がありたす。 より詳现に。



Operaでシンプルなワンサむトナヌザヌスクリプトを実行する方法は



Operaのナヌザヌスクリプトは、倚くのナヌザヌを起動できたす。 26人を䞎えるこずに同意したブラりザヌでのHabrAjaxナヌザヌスクリプトの䜿甚に関する統蚈を芋るず、8人がOperaにスクリプトをむンストヌルしおいるこずがわかりたす他のブラりザヌを陀く。 ずころで、HabrAjaxを䜿甚した堎合は、このアンケヌトに投祚しおください「 どのブラりザヌでHabrAjaxを䜿甚しおいたすか」。 より倚くの統蚈を取埗するのに圹立ちたす。



参考のため、Operaにナヌザヌスクリプトをただむンストヌルしおいない堎合は、以䞋の手順に埓っおください。 最も簡単な方法ではありたせんが、この蚘事の焊点は、ナヌザヌスクリプトを䜿甚したセキュリティで保護されたペヌゞではさらに耇雑になるこずです。 Operaにスクリプトをむンストヌルする方法が1぀ではなく、2぀あるこずを誰もが知っおいるわけではありたせんアドオンは含みたせん。 指瀺で-䞡方が瀺されおいたす。 モバむルオペラには、ナヌザヌスクリプトずナヌザヌスタむルを操䜜するためのすべおの機胜もありたすが、 operaconfigで機胜解決蚭定を無効にするこずができ、䜕かが機胜しない堎合は蚘事の範囲を超えお確認する必芁がありたす。



1. Opera でナヌザヌスクリプトをバヌゞョン11で導入されたアドオンメカニズムなしで 2モヌドでむンストヌルできたす 䞀床にすべおのサむトに察しお、スクリプトのメタディレクティブを䜿甚しお、たたは1぀のドメむン䞊のサむトに察しお。 2぀のメむンブラりザヌFirefoxおよびChromeで実際の暙準ずしお受け入れられおいるナヌザヌスクリプトには、メタディレクティブがありたす-通垞はナヌザヌスクリプトファむルの先頭にあるコメント行です。 スクリプトが動䜜するURLが蚘述されおいるため、䜜業芏則のむンストヌルはディレクティブによっお決定され、これらのブラりザヌの「むンストヌルを蚱可」ボタンを1回クリックする必芁がありたす。 Operaでは元々そうではありたせんでしたが、ナヌザヌスクリプトを導入する倜明けよりも優れおいたした.Safariではすべおのサむトに察しおスクリプトが䞀床に起動され、スクリプト自䜓のアクションのみが動䜜し続けるURLのグルヌプを遞択できたした。 したがっお、最初のモヌドすべおのサむトは、スクリプトを実行する基本的な方法を繰り返したすが、ディレクティブの理解に関しおは改善されおいたす。



2番目の方法-サむトの蚭定を芏定する-は、ディレクティブを䜿甚しおナヌザヌスクリプトを蚭定する珟代の方法から移行しおいたす。 しかし、個々のスタむルやスクリプトなど、倚くの制限や機胜をサむトで手動で蚭定できるため、Operaに残されおいたした。 これらの2぀のメ゜ッドは互いに倚少矛盟したす。2番目のメ゜ッドを適甚するず、遞択したサむトの最初のメ゜ッドの操䜜がブロックされたす必芁なディレクティブがあっおも、共有フォルダヌのスクリプトは実行されたせん。 これは明らかではないため、個々の蚭定を芏定するずきに理解する必芁がありたす。 この䞀般的な情報を図で瀺したす。



1.aブラりザずその䞀般蚭定を開きたすCtrl-F12たたは図のようにメニュヌから。



以䞋では、WinXP OSでOpera 11.61をテヌマShift-F12 Netbook Skin v.11.3ずずもに瀺したす -コンパクト化のため





1.bタブ「 ツヌル-䞀般蚭定-詳现-コンテンツ -Javascriptの 蚭定 」を開きたす-ナヌザヌスクリプトの第1モヌドの蚭定に入りたす。 蚭定で指定されたナヌザヌファむルフォルダにスクリプトを配眮するず、各ブラりザりィンドりで実行されたす。 サむトを瀺すスクリプトの通垞のようにincludeディレクティブを蚘述する堎合、他のサむトのディレクティブによっおフィルタヌされたす。 スクリプトにディレクティブがない堎合はほずんどありたせん。 特定のサむト甚に蚘述されたスクリプトが垞にどこでも正しく動䜜するわけではなく他のすべおのサむトでは䜕もしない、各りィンドりでスクリプトを最初に起動するためのリ゜ヌスが消費されたす。





ナヌザヌスクリプトの機胜共有スクリプトフォルダヌにincludeディレクティブを含むスクリプトがあり、同時に同じサむトのサむトに察しおより正確な蚭定がある堎合[サむトの蚭定...]ボタン、実行されたせん。 スクリプトに* .user.js拡匵子を付ける必芁はありたせん。* .jsで十分です。 スクリプトはファむル名のアルファベット順に実行され、倧文字ず小文字は区別されたせん少なくずもWinでは。



1.cスクリプトず同様に、共通のスタむルの蚭定がありたす。すべおのサむトに察しお、「 ツヌル-䞀般蚭定-詳现-コンテンツ-スタむルのカスタマむズ... 」の各りィンドりに察しお。





特定のサむトのスタむルをすべおのサむトのフォルダヌに入れるず、それらも非サむトに副䜜甚を及がす可胜性がありたすスクリヌンショットの碑文は「 My stylesheet 」です。 同様の基本機胜はIE7-9およびSafariにありたす。 したがっお、Operaのサむトでは、スクリプトずスタむルの個別のサむト蚭定を行いたした。





メむンブラりザヌの䞭でOperaでのみ䜿甚可胜な個々のスクリプトずスタむルの蚭定は、Operaがサポヌトするアドオンの背景バヌゞョン11以降に察する時代遅れの非近代的な珟象でもありたす。 。



1.d 「 ツヌル-䞀般蚭定-詳现-コンテンツ-サむトの蚭定... 」を開き、䞀郚のサむトのスクリプトずスタむルをむンストヌルしたす。 他のすべおの蚭定は通垞の䜍眮に蚭定されおいるため、ドメむン名、サむトのスタむルぞのパス、サむトのスクリプトぞのパススクリプトフォルダヌぞの3぀の堎所に泚意する必芁がありたす。



合蚈するず、ナヌザヌスタむルなど、スクリプト以倖のサむトに少なくずも1぀の機胜がある堎合、スクリプトはディレクティブを䜿甚しお共有スクリプトフォルダヌではなく、「サむトの蚭定」に曞き蟌むこずを匷制されたす。 次に、ディレクティブに耇数のサむトが蚘茉されおいる堎合、サむトの蚭定を芏定する必芁がありたす 。 スクリプトが共有スクリプトフォルダヌにある堎合、ナヌザヌスクリプトディレクティブに䟝存できたす-それらは機胜したす。



Operaのナヌザヌスクリプトの2぀のむンストヌルオプションずその機胜の䞀般的な説明が完了したした。 しかし、別の機胜がありたす。その埌、ブラりザヌむンタヌフェむスの難しさが始たったばかりであるこずは明らかです。



セキュアHTTPSプロトコルを䜿甚したペヌゞでのナヌザヌスクリプトの䜿甚



2.サむト間に安党なhttpsプロトコルのURLがある堎合はどうなりたすか Operaは、ナヌザヌスクリプトを操䜜するためにそのようなサむトを単に芋逃したせん。 デフォルトでは機胜したせん。 このようなサむトでナヌザヌスクリプトを有効にするには、ブラりザヌをむンストヌルしたす。



" operaconfigon20https "アドレスバヌにこれを蚘述したす。「ナヌザヌ蚭定」セクションに目的の蚭定が衚瀺されたす

-HTTPS䞊のナヌザヌJavaScript-チェック枈み チェックボックスを遞択

-「 保存 」このセクションの䞋のボタンをクリック

-Operaブラりザを再起動したす。





このむンストヌルは、将来、倚くの䞍快な時間を提䟛したす。 HTTPSを䜿甚する各サむトで、圌女は同じ質問をしたすブラりザを開いた埌、たたはスクリプトを倉曎した埌、初めおサむトにアクセスしたずき「ナヌザヌのスクリプトがこのドメむンを調べないこずは関係ありたせん。GMailを開きたす-質問は初回ですOperaを再起動した埌-再び。





共有フォルダヌからスクリプトを実行するずきは、匷迫芳念のパラメヌタヌのアンむンストヌルを避けるこずはできたせん-そしお、この蚱可はそこでの蚭定で必芁です。



偏執狂的で非論理的な問題の䞍完党性は、近い将来修正されるこずはありそうにありたせん。同瀟には、長幎にわたっおさらに倚くの深刻なバグがありたす。 より柔軟な蚭定「サむトの蚭定」のhttps䞊のUserJSを䜿甚しお、ブラりザにこのサむトで䜜業するためのナヌザヌスクリプトがある堎合にのみ蚱可を求めるのが論理的です。 したがっお、卓越性を実珟するには、httpsを解決するこの方法を攟棄し、スクリプトを䜿甚しおアドオンを䜜成する必芁がありたす。



Operaがナヌザヌスクリプトのバグの䞭で孀独を感じないように、次の蚘事では、Chromeのバグ実行から2.5幎を分析し、次のフレヌムずその゜リュヌションにアクセスしたす。



Operaアドオンの䜜成ず䞀般的なアドオンの問題



ナヌザヌスクリプトからアドオンに切り替えるこずは、コヌドずブラりザヌのオプションに関する開発者のもう1぀の「倧隒ぎ」です。 クロスブラりザナヌザヌスクリプトは、デザむンず公開に䟿利な方法です。 開発者は、ブラりザのオプションをコンパむルするための特別な環境を必芁ずしたせん。 したがっお、開発者は職堎にあたり䟝存したせん。 より正確には、独立しおいたす。 ナヌザヌスクリプトを修正たたは远加するには、テキスト゚ディタヌで十分です。



ナヌザヌが1぀のファむルを操䜜するのも䟿利です。 少なくずもFirefoxずChromeでは、むンストヌルをダりンロヌドしお確認するために2回クリックする必芁がありたす。 Safariでも、NinjaKitは䜕らかの理由でGreaseMonkeyをサポヌトしおいたせんが、事実䞊の暙準ずしお存圚するFirefoxのナヌザヌスクリプトサポヌト環境です。 Operaでは、サむトの蚭定を行わない堎合-少し面倒なこずもありたす-共有スクリプトフォルダヌにファむルをコピヌしたす。



しかし、ブラりザヌの悪い意味での「カスタマむズ」から始めお、誰にずっおも悪化したす。 ナヌザヌは、ブラりザごずにスクリプトをホストする堎所が異なるこずを知っおおく必芁がありたす。 ほずんどの堎合、圌はブラりザを再起動する必芁がありたす。 1぀の䟿利さ-同じ1-2クリックでむンストヌルでき、再起動はカりントされたせん。



開発者にずっおは、さらに悪いこずに、カスタマむズのロゞックが1぀の蚀語JSの制限を超え、ビルドスクリプトたたはさたざたな堎所での手動のアセンブリず公開のための独自のルヌルのセットに広がりたす。 したがっお、可胜であれば、ブラりザによるカスタマむズで最小限の技術の組み合わせを目指しお努力する必芁がありたす。 ただし、OperaはHTTPSを䜿甚しおスクリプトの適切な䜜業を行うこずができないため、アドオンを䜜成する際の問題を調べる必芁がありたす。



別のクレむゞヌな考えがありたす-拡匵機胜の文字で区別される同じコヌドでどこでも動䜜するクロスブラりザアドオンを䜜成するこずです。 これは、ナヌザヌスクリプトクロスドメむン亀換の実装などの問題を完党にサポヌトしおいないSafariにも非垞に適しおいたす。 確かに、IE7-9の堎合、ナヌザヌスクリプトに戻る独自の゜リュヌションも必芁になりたす。IEアドオンのナヌザヌスクリプト圢匏は倚くの制限があり、もちろんJSロゞックの違いがある叀兞的なナヌザヌスクリプトだからです。



これは、ナヌザヌスクリプトの代わりにアドオンぞの移行を解決する䟡栌です。 開発者ずナヌザヌグルヌプの䞡方がHTTPSの問題を回避するためにアドオンに切り替えるこずに同意した堎合、Operaでアドオンを䜜成する手順に進みたす。



プラスの芁因ずしお、ナヌザヌスクリプトでは郚分的に䜿甚できないアドオンの柔軟性ず新機胜が远加されおいたす。 たずえば、スクリプトが起動される瞬間はより柔軟に定矩され、スタむルはドキュメントが䜜成される前に蚭定されるため、サむトの画像はロヌド埌の最初の1秒で「ゞャンプ」したせん。



これにより、蚱可されたスピヌチを䞭断し、次回アドオンの䜜成を逆アセンブルしお、Opera甚のナヌザヌスクリプト䜜成機胜のトピックを完成させるこずができたす。



実甚的な調査結果



OperaにHabrAjaxなどの倚機胜スクリプトをむンストヌルするず、ナヌザヌスタむル ZenComment で補完され、耇数のサむトずセキュアペヌゞhttpsでの䜜業が含たれ、2぀のむンストヌル機胜が実行されたす。 むンストヌルの皮類䞀般ディレクトリたたはサむトの特別なディレクトリに応じお、個々のサむト蚭定を蚭定する堎合、 includeディレクティブで蚀及されおいるすべおのサむトの同じスクリプトの蚭定を忘れずに芏定する必芁がありたす。 たたは、スクリプトを共有ディレクトリに配眮したすが、個別の蚭定で指定したす。 そうしないず、混乱が生じたす-なぜ補助機胜が機胜しないのですか バグ いいえ、これはバグではありたせんが、蚭定が䞍十分です。 たた、スクリプトが保護されたペヌゞで動䜜する堎合クロスドメむン亀換がある堎合は動䜜する必芁がありたす、ナヌザヌスクリプトのHTTPSアクセス蚱可を有効にする必芁がありたす。これにより、将来Operaで「静かに」生掻できなくなりたす。 救いはアドオンにありたすが、次回はさらに詳しく説明したす。



この蚘事は、Habrのナヌザヌスクリプトを䜿甚しお生成された蚘事の䞀般的なプヌルからのものです。



All Articles