9

一般に、ブラウザの javascript からシステム ライブラリまたは dll を呼び出せないことは承知しています。しかし、アプリケーションの多くで、ブラウザーが他のプロセスを開始しているのを目にします。例えば:

  1. Google Plus を開くとすぐに、バックグラウンドで googletalkplugin.exe (フォルダからC:\Users\Jatin\AppData\Local\Google\Google Talk Plugin) が起動します。(リソースモニターで確認可能)
  2. Facebookのビデオチャットと同じです。初めて、プラグインをインストールするように求められ、後でチャットを開始すると、プロセスが開始されます。
  3. トレント サイトでは、マグネット リンクが提供されます。トレント マグネット リンクをクリックすると、システムのデフォルトのトレント クライアントが開きます。

ある意味では、フラッシュとアプレットも同じです。

ブラウザーはどのように別のプロセスをトリガーし、それと通信しますか? 不足しているオープン標準はありますか?

最終的には、スクリーンキャストを使用してビデオ、オーディオの録音を行いたいと考えています。画面記録に関しては、Java アプレットが唯一の解決策のように見えますが、アプレットには独自の問題があります。

4

2 に答える 2

3

The flash player and applets use plugins, which are native applications to the OS, (i.e. (mostly) not JavaScript), they are not extensions but plugins. For Chrome see chrome://plugins/ to see the list of installed plugins.

For writing a browser plugin, refer to How to write a browser plugin?

The torrent link is totally different, they are done by registering an url protocol to handle. In other words, you say to the computer that, from now on, I will run any urls which have protocol of torrent, i.e.: starts with torrent://. See: Uri Scheme

When the browser sees the uri, it knows that is not handling torrent protocol itself, so it delegates that to OS, which knows what to do with it.

If the browser did know how to handle that, it probably would not delegated that to OS. For example: Google Chrome can handle mailto: links just well without registering mailto protocol to be handled by OS.

于 2013-09-03T10:29:17.827 に答える
2

プラグインを書くことでこれを行うことができます。Firebreathと呼ばれるライブラリを使用して、同じ C++ コードを使用して、ほとんどの一般的なブラウザーで動作するプラグインを作成することが可能です。

当然のことながら、ページが外部アプリケーションを起動できるようにする既存の標準プラグインはありません。これは、大規模なセキュリティ ホールとなり、(正気の) ユーザーがそのようなプラグインをインストールすることに同意しないためです。

必要なものだけを慎重に制限した機能を備えた特定のプラグインを作成する必要があるため、ユーザーはそれらの機能のみを使用できるようにすることに同意できます。もう一度、別のページがこれらの機能をどのように利用するかを考えてから、このルートに進みます。

于 2013-09-03T10:25:31.883 に答える