問題タブ [invokescript]

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.

0 投票する
1 に答える
463 参照

c# - C# から JavaScript を呼び出すときのエラー UnathorizedException

PhoneGap (Cordova) Windows Phone 8 アプリケーションで C# から JavaScript コードを呼び出そうとしています。この受け入れられた回答スレッドの手順に従ってください: C# から JavaScript を呼び出す方法 - Cordova/PhoneGap

Javascript 部分のメソッドにアクセスしたり、ハードコードされた JS コードを実行したりできるはずです。しかし、私はこのエラーが発生しています:

タイプ 'System.IO.FileNotFoundException' の例外が mscorlib.ni.dll で発生し、マネージド/ネイティブ境界の前に処理されませんでした
タイプ 'System.UnauthorizedAccessException' の最初の機会の例外が System.Windows.ni.dll で発生しまし
たタイプ 'System.UnauthorizedAccessException' の例外が System.Windows.ni.dll で発生しましたが、ユーザー コードでは処理されませんでした
タイプ 'System.Reflection.TargetInvocationException' の最初の機会の例外が mscorlib.ni.dll で発生しまし
た.Reflection.TargetInvocationException' が mscorlib.ni.dll で発生し、マネージド/ネイティブ境界の前に処理されませんでした
エラー: ProcessCommand の例外 :: 呼び出しのターゲットによって例外がスローされました。
エラー: オブジェクト :: の InvokeMethodNamed :: pluginMethod に失敗しました: 例

私のコードは(ネイティブプラグインです):

PGWebBrowserHandlerCordovaBrowser任意の C# クラスからアクセスできるようにするために、前述のスレッドで指定されたシングルトン クラスの名前です。

エラー (FileNotFoundException, UnauthorizedAccessExceptionおよびTargetInvocationException) はメソッドが原因ではなく、クラッシュしないがデバッグすることInvokeScript()によって以前に発生しました。多くのメソッドが原因です。webView,UnauthorizedAccessException.

私の説明が明確であることを願っています。Google で検索しましたが、解決策や回避策はどこにも見つかりませんでした。これらの問題の理由を知っている人はいますか?invokeScript()からメソッドを呼び出すと、MainPage.cs例外も発生します。

0 投票する
1 に答える
1265 参照

c# - WP8.1 InvokeScript エラー

私は Windows Phone 8.1 アプリに取り組んでいます。WebBrowser クラスの InvokeScript メソッドに問題があります。XAMLにこれがあります:

そして、このコードを実行すると:

InvokeScript の行で System.SystemException が発生し、次のことがわかります。

不明なエラーが発生しました。エラー: 80020006。

Windows Phone 8 (8.1 ではない) で同じコードを実行すると、例外が発生しません。

WP 8.1 でエラーが発生する理由を教えてください。

0 投票する
1 に答える
1597 参照

javascript - InvokeScriptAsync を介して WebView から既存の JavaScript 変数を返す

わかりました、これはばかげています。WebView に読み込む HTML に既存の変数があります。caret_position

Windows ストア アプリで InvokeScriptAsync を介して取得したいと考えています。これが私が試したことです。

これらはどちらも機能しません。私がそれを機能させる唯一の方法は、それをjavascriptの非表示の入力に書き込んでから、この呼び出しを使用することです。

javascript変数に直接アクセスする方法はありますか、それとも毎回これらのフープを飛び越える必要がありますか?

0 投票する
1 に答える
1686 参照

c# - WebBrowser で JavaScript 関数を呼び出し、JavaScript イベントが発生するまで待ちます

私は.NET、具体的にはC#で作業しており、WebBrowserコントロールを含むWin Forms UserControlを作成しています。WebBrowser コントロールは、サードパーティの JavaScript コンポーネントを使用するページをホストします。私が抱えている問題は、javascript関数を呼び出してサードパーティのjavascriptコンポーネントを初期化し、コンポーネントが初期化されるまでWindowsフォームアプリケーションのUIをブロックすることです。これは、コンポーネントが内部javascriptイベントを介して通知します.

問題の一部は、サードパーティの JavaScript コンポーネントの構成パラメーターを変更する唯一の方法は、新しい構成で再初期化することです。たとえば、読み取り専用にしたい場合は、読み取り専用パラメーターで再初期化する必要があります。

Document.InvokeScript を呼び出し、Web ページで window.external を使用して UserControl メソッドを呼び出すことができるという点ですべてが機能していますが、私が抱えている問題は、呼び出しを行う UserControl コードをブロックする方法ですJavaScript コンポーネントを初期化して、JavaScript コンポーネントの初期化が完了するまで待機し、ユーザーに制御を返さないようにします。

このように動作させる必要がある理由は、フォームに「読み取り専用」チェックボックスがあり、UserControl の ReadOnly プロパティを変更して、JavaScript コンポーネントがデータを読み取り専用として表示し、ユーザーがクリックするかどうかを制御するためです。そのチェックボックスをすぐに使用すると、JavaScript エラーが発生するか、チェックボックスが JavaScript コンポーネントの実際の読み取り専用状態と同期しなくなります。これは、構成が変更された後、コントロールがまだ再初期化されておらず、すでに変更しようとしているために発生するようです。

AutoResetEvent から Application.DoEvents などのすべてを使用して機能させる方法を考え出すのに何時間も費やしましたが、機能させることができないようです。

私が見つけた最も近いのは、WebBrowserでスクリプトを呼び出し、実行が完了するのを待つ(同期される)ですが、VS2012で導入された機能を使用します(そして私はVS2010を使用しています)。 JavaScript イベントが発生するのを待っていないという点で少し異なります。

どんな助けでも大歓迎です。

0 投票する
2 に答える
824 参照

javascript - Web ブラウザーで JavaScript 関数を呼び出すときに、指定されたキャストが無効です

Webブラウザでjavascript関数を呼び出そうとしています。Web サイトには、javascript 関数を含む別のファイルがあります。これは、Web サイトの html ファイルの一部です。

これは .js ファイルから関数を削除します:

そして、C#でこのスクリプトを使用して「削除」関数を呼び出そうとしています:

しかし、このスクリプトコンソールを呼び出そうとすると、常にエラーが表示されます: 指定されたキャストが無効です。

何がうまくいかなかったのですか?

0 投票する
2 に答える
454 参照

javascript - ディスパッチャーなしでWPF WebブラウザーでJavascriptを呼び出す

WPF WebBrowser コントロールを実装するアプリケーションがあります。アプリケーションから、おそらく他のスレッドから呼び出す必要があるいくつかの JS 関数を含むページをロードします。できれば、MVVM パターンに固執し、関数の戻り値を解析するためのコードをモデルに保持したいと考えています。WebBrowser オブジェクトでの InvokeScript メソッドの呼び出しは、UI 要素であるため、Dispatcher スレッド (したがってビュー内) で発生する必要があります。

この仕事を成し遂げるために私が現在行っている手順は次のとおりです(大まかに擬似的に):

これにより、モデルとビューの間で (viewmodel を介して) かなりの通信が行われます。私は WPF (または MVVM については) の経験が少ないので、このタスクを達成するためのより適切な方法があるかどうか疑問に思っています (より適切な方法とは、モデル、ビューモデル、およびビュー間の呼び出しとイベントが少ないことを意味します)。

0 投票する
1 に答える
1078 参照

c# - CSSを変更するUWP Visual C# WebView InvokeScriptが例外をスローする

Javascript 関数を挿入して、ロードされた Web サイトの CSS を WebView (ローカルではない) に変更しようとしています。これら 2 つの記事 (記事 1記事 2 ) を見つけましたが、両方のバージョンを実装した後、常に次の例外が発生します: System.NotImplementedException {"メソッドまたは操作が実装されていません。"}

これはこれまでの私のコードです:

MainPage.xml

MainPage.xaml.cs

なぜ例外をスローするのかわかりません。私が提供した情報で十分であることを願っています。そうでない場合は、私に戻ってください:-)

ご回答ありがとうございます。