問題タブ [jint]
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# - C#でJintを使用してJavaScriptファイルをロードするにはどうすればよいですか?
Jintを使用してJavaScriptファイルをロードしたいのですが、理解できないようです。ドキュメントには、のようなことができると書かれてengine.run(file1)
いましたが、ファイルをロードしていないようです。ファイル名で何か特別なことをする必要がありますか?
これが私のJavaScriptファイルです:
これが私のC#です
コードを手動で入力するRun
と機能します。
exception - 例外から戻るJNIintメソッド
次のようなJavaクラスがあるとします。
foo()メソッドがいくつかのJNI呼び出しを実行していて、これらの呼び出しの1つが失敗した(つまり、例外をスローした)とします。次に、JNIコードから戻り、Javaで例外をスローします。例えば:
問題は、それreturn NULL
がジントではないということです。たとえばAndroidでは、コンパイル時に次
の警告が表示されます。警告:returnは、キャストなしでポインタから整数を作成します。
ここで問題は、ジントを返すJNIメソッド内で例外がスローされた場合に何を返す必要があるかということです。
c# - テキスト ファイルの読み取り時に C# SecurityException が発生する
私は ac# プログラム (具体的には IRC ボット) を作成し、スクリプト ライブラリ Jint ( http://jint.codeplex.com/ ) を使用しています。呼び出されたときに別のファイルから .js テキスト ストリームを読み取る外部コマンドがリンクされています。最初のファイルの読み取りは正常に機能しますが、他のファイルを読み取ると、次のメッセージが表示されます。
例外をスローする C# 関数は次のとおりです。
c# - Mac OS X / Mono での Ldfld の問題、おそらく Mono のバグ
Mac OS X に切り替えるまで問題なく動作していたサードパーティ ライブラリ JInt (JavaScript インタープリター) を使用しています。ある種の Js-Clr ブリッジを作成します。このメソッドには、最後に次の指示があります。
これらの行がどのように実行されるかは次のとおりです (フルサイズのスクリーンショットはこちら)
引数が null でないことは明らかですがfieldInfo
、これらの行を実行すると、LDFLD には引数がないことに注意してください。(フルサイズのスクリーンショットはこちら):
実行される私の現在のステートメントは Ldnull です。「ステップ イン」(Ldnull 経由) を実行すると、Ldfld 経由で BANG 例外が発生します (フル サイズのスクリーンショットはこちら)::
助言がありますか?
javascript - 特定の名前空間を Jint に公開する
名前空間として設定した既存の API に、Jint で実行するスクリプトがアクセスできるようにしたいと考えています。つまり、他の名前空間を含め、API を含む名前空間が 1 つあるということです。スクリプトが残りのコード (.Net フレームワークを含む) にアクセスできるようにしたくありません。
私はすでにこれをJintフォーラムに投稿しました: http://jint.codeplex.com/discussions/310772 ただし、彼らに無礼ではありませんが、フォーラムはあまり活発ではないようで、これに答えたいと思います。できるだけ早く、私もここに投稿しています。
少し前に、ThomasMaierhofer がこれに似たものを達成しました。
経験の浅い私の脳には、これは API をエンジンに公開するための非常に巧妙な方法のように思えますが、このように行われたことはこれまで見たことがありません。
だから私の質問は次のとおりです。これは機能しますか?もしそうなら、なぜ以前はこのように行われなかったのですか? 新しいバージョンが利用可能になったときに、Jint .dll を簡単に更新できるように、Jint ソースを変更せずにこれを達成する方法はありますか?
EDIT: 私が持っている現在のAPIは、それぞれが複数の機能を持つ複数のクラスで構成されています。SetParameter を使用して、これらのクラスの特定のインスタンスを完全に公開できます。Jint には、名前空間を完全に修飾することによってスクリプトが CLR にアクセスできるようにする AllowClr プロパティもあります。これは、これを false に設定するとどうなるかを示すサンプル コードです。ソース: http://jint.codeplex.com/wikipage?title=Using%20.NET%20classes%20from%20scripts
これを許可したいのですが、他のすべてではなく、特定の名前空間に対してのみ許可します。質問がより明確になることを願っています。
ご協力いただきありがとうございます、
サム。
PS私はVB.Netで作業していますが、C#を含む回答は問題ありません。
javascript - 辞書を使用してJINTで「javascriptドット表記」を使用することは可能ですか
などの一連の JavaScript コマンドがあり、JINTdoc.page == 5
を使用して C# アプリケーション内でスクリプトを実行しています。
ただし、私の C# コードでdoc
は、Dictionary<string, object>
. したがって、このようにドット表記を使用することはできません。
私の現在のソリューションは非常に非効率的ですdoc
。JSON 文字列に変換し、それをスクリプトに追加します。はDictionary
非常に大きいため、単純なコマンドを実行するよりもオーバーヘッドが大きくなります。コード例を次に示します。
これをより効率的に行う方法はありますか?
xamarin.ios - モノタッチでジント
Jint (Javascript Interpreter for .NET) が MonoTouch で動作するかどうかを知りたかっただけです。私は、Jint ライブラリを使用する MonoDevelop のプロジェクトを持っています。MonoTouch で使用できるかどうかを知りたいだけです。それを使用する方法について調べることができるチュートリアルはありますか?
xamarin.ios - Monotouch で Jint Engine を使ってみた
Monotouch で Jint を少し試してみたいのですが、Jint-Mono プロジェクト (monotouch バージョンではなく mono) が Mac で動作しますが、iPhone で動作させることができません。このクラスを作成しました:
JintObject メソッドを呼び出そうとすると、例外エラーが発生します。
私は何を間違っていますか?
javascript - DOM をロードし、サーバー側で .Net を使用して JavaScript を実行する
ドキュメント (文字列形式) または URL を使用して DOM をロードし、それに対して JavaScript 関数 (jquery セレクターを含む) を実行したいと考えています。これは完全にサーバー側であり、進行中です。クライアント/ブラウザーはありません。
基本的に、DOM をロードしてから、jquery セレクターと text() & type val() 関数を使用してそこから文字列を抽出する必要があります。私は本当にdomを操作する必要はありません。
I have looked at .Net javascript engines such as Jurassic and Jint, but neither support loading a DOM, and so therefore can't do what I need.
I would be willing to consider non .Net solutions (node.js, ruby, etc) if they exist, but would really prefer .Net.
edit The below is a good answer, but currently I'm trying a different route, I'm attempting to port envjs to jurassic. If I can get that working I think it will do what I want, stay tuned....
c# - Jint/Trap console.log 呼び出しを使用して C# から JavaScript を実行する
私は JINT を使用して JavaScript ファイルを小さな C# アプリにロードし、C# からいくつかのパラメーターを使用して多数のメソッドを呼び出しています。これらのメソッドの戻り値を取得したい。これは私がやっていることです:
javascript メソッドは次のとおりです。
上記のコードを実行すると、VisualStudio コンソールに「Finished」と表示されますが、「Hello!」を送信する呼び出しが AS3 コンソールへの接続はどこにもありません。flashlog.txt ファイルにもありません。実際、ブラウザがないため、存在する「コンソール」オブジェクトではない可能性があるため、JINTはエラーをスローすると思います。
JINT で実行されている JavaScript からコンソールに送信されたものをトラップするにはどうすればよいですか? SystemConsole 'または何か(System.Consoleではない)を含むJINTダウンロードサイトの例がありますが、これを機能させることに成功していません。JavaScript にデバッグ コードを追加して、VisualStudio のコンソールに表示できるようにしたいと考えています。
何か案は?これにより、私が行っていることのデバッグが非常に困難になっています。. .
前もって感謝します。