問題タブ [cefsharp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CefSharp で JavaScript を一時的に無効にする
ソースコードを解析して関連データを抽出することにより、いくつかのWebサイトからデータを収集するCefSharp.WebViewが埋め込まれた小さなプログラムを作成しましたが、そのうちのいくつかはソースコードにデータがなく、JavaScriptを介してデータをロードします少しあと。しかし幸いなことに、これらのサイトは JavaScript が有効になっているかどうかを確認し、JavaScript が無効になっている場合はソース コードでデータを提供します。
したがって、デフォルトで JS を有効にし、これらの奇妙なページの 1 つをロードする前に一時的にのみ JS を無効にしたいと考えています。
C#の下でCefSharpでこれを実現する方法はありますか?
もともと私は IE WebBrowser コントロールを使用するつもりでしたが、これは間違いなくグローバルなインターネット設定のみを使用し、JS を一時的に無効にする方法はなく、システムで JS を完全に無効にしたくありません。
c# - CefSharp JavaScript インジェクション
ページが読み込まれた後、ドキュメントの先頭に JavaScript を挿入しようとしています。
スクリプト行 1 と 2 を評価した後、開発ツールでスクリプト変数を確認できます。しかし、3 行目を実行しようとすると、例外が発生します。
An unhandled exception of type 'System.StackOverflowException' occurred in CefSharp.dll
私の間違いはどこですか?
winforms - CefSharp でプロキシを手動で設定する方法
このリンクからダウンロードした CefSharp アプリケーションに取り組んでいます
。プロキシを手動で設定したい。申し込みましAutoDetectProxySettings = true
たが、うまくいっているかどうかわかりません。サンプルでは
そこにブレークポイントをマークしましたが、それを呼び出していません。
.net - 相互運用ユーザー コントロールの CEFSharp (Chromium Embedded Framework)
Chromium Embedded Framework の CefSharp CLR バインディングを使用して、従来の ActiveX コントロール (WonderWare InTouch HMI) のみをサポートするアプリケーションに埋め込むことができる代替 Web ブラウザー コントロールを作成して、いくつかの HTML5 サポートを取得しようとしています。古い機械。
これまでのところ、Microsoft InteropForms Toolkitを使用して Interop User Control を作成し、CefSharp.WinForms WebView を非常に必要最小限の方法でコントロールに埋め込みました。
DLL をビルドするときに、コマンドを使用して登録します。
regasm /tlb /コードベース Cefsharp.WebControl.dll
これはほとんどの場合うまくいくようですが、完全には理解できない問題がいくつかあります。Excel で VBA フォームを使用してテストしています (純粋に利便性のため)。Form Builder を使用している場合、ユーザー フォームに追加されたときにコントロールが実際に初期化され、Web ページが完全に読み込まれます。
ただし、UseForm を表示しようとすると、webview のハンドルまたはインスタンス (またはその両方) が破壊されているように見え、修正方法がわかりません。フォームを表示して、次のようなことを試してみると
オブジェクトが存在しないというエラーが表示されます。少しいじりましたが、ポインターが無効であるなどの別のエラーが発生することもありますが、これまでのところ、適切に設定する方法がわかりません。ユーザー フォーム イベントの処理に問題があると思いますが、よくわかりません。
誰かがこれについて何か洞察を持っているなら、私はそれを大いに感謝します. ありがとう!
wpf - クラス内から TabControl にアクセスするにはどうすればよいですか?
Visual Basic を学習してから 1 週間が経ちましたが、完全に行き詰まっています。
WPF の XAML に 2 つの TabItems を持つ TabControl があります。
そして、MainWindow クラス内のクラス、bookmarkControlsObj からタブを (プログラムによって/問題のある方法で) 変更しようとしています。
しかし、私は " Reference to a non-shared member requires an object reference.
" を取得し続けます。bookmarkControlsObj クラス内で XAML TabControl を共有する方法がわかりません。助けてください。
編集:
ネストされたクラスがある理由は、Javascript 関数を含むページを収容する cefsharp (クロム埋め込み) WebView からクラス内の「フォロー」サブRegisterJsObject
を呼び出しているためです。 Javascript によるメソッド。この場合、2番目のTabItemに含まれるブラウザーにロードする「フォロー」サブにURLを送信していますが、ロードする前にそのタブに自動的に切り替えたい-簡単に言えば、RegisterJsObject
うまくいくようですクラス内に含まれている場合..ネストされているのは、それが最終的な場所であるためです。
「共有」と宣言してTabItemに追加したため、クラスの2番目のタブでブラウザーにアクセスできますが、TabControl(視覚的に設定)をSharedとして宣言する方法がわかりません
これが役立つ場合は、RegisterJSObject へのリンクを次に示し ます。
wpf - ロード時に TabItem に強制的にコンテンツを初期化させるにはどうすればよいですか?
[免責事項: Visual Basic は初めてです。]
WPF には、2 つの TabItems を含む TabControl があります。
最初の TabItem には、多数の URL が含まれています。
2 番目の TabItem は、cefSharp webView (.net に埋め込まれたクロム) を含む DockPanel で構成されます。
tab1 の URL をクリックすると、tab2 に含まれるブラウザーにページが読み込まれます...ただし、最初に tab2 をクリックしてブラウザーを初期化した場合にのみ機能します。
いくつかの検索を行った後、vb.net は、表示されるまで TabItem のコンテンツを初期化しないようです。(右?)
それで、私の質問は、選択されていないタブのコンテンツをバックグラウンドでロード時に強制的に初期化するにはどうすればよいですか? (つまり、最初にタブをクリックしたり切り替えたりする必要はありません)
編集:
リクエストに応じて、関連するコードは次のとおりです。
関連する XAML は、「mainBox」という名前の単一の DockPanel で構成されます
そして、ここに私の「コードビハインド」VBスクリプトがあります:
そのため、デフォルトの状態では、起動時に tab1 が表示されます。tab2 (web_view2) のブラウザーは、タブをクリックするか、スクリプトを介してそのタブに変更するまで初期化されません。これで少しは解決することを願っています。
c# - cefsharp ロケーション変更イベント C#
cefsharpでWebビューの場所が変更されたときにイベントを設定する方法と、他のURLにリダイレクトされないようにする方法を知る必要があります