0

Chrome拡張機能で「config.txt」などの解析するファイルを開こうとしています。

Javascriptを使用すると、かなり簡単になります。例:chrome.extension.getURL('config.txt')のようなものを取得しますchrome-extension://kfcphocilcidmjolfgicbchdfjjlfkmh/config.txt

ただし、拡張子のC ++(またはC)コードでは、このようなURLでファイルを開くことはできません。

この場合、拡張子が大きいファイルを開く方法はありますか?

4

2 に答える 2

0

これに対処する方法は2つあります。1つ目は、JavaScriptを使用してパスを取得し、メソッド呼び出しでプラグインに渡すことです。

2つ目は、プラグインの.dllファイルへのパスを取得し、Webサイトで説明されているようにそれを基準にしたconfig.txtの場所を計算することです。

私は他のオプションが使用しようとすることだと思います:

m_host->getDOMWindow()->getNode("chrome")->getNode("extension")->getNode("getURL")->callMethod<FB::variant>("", FB::variant_list_of("config.txt");

それが実際に機能するかどうかはわかりません。私はそれを試していませんし、関数呼び出しのいくつかをタイプミスしたかもしれませんが、試す価値があるかもしれません。

于 2011-12-02T17:00:45.570 に答える
0

私はついに、XmlHttpRequestによってNPAPIプラグインで「config.txt」を取得する方法を見つけることができました。

const char* getconfig =
" window.__config_txt__ = (function() {"
"     var ret = \"Default return value\";"
"     var xhr = new XMLHttpRequest();"
"     xhr.open(\"GET\", \"config.txt\", false);"
"     xhr.onreadystatechange = function() {"
"       if(xhr.readyState == 4) {"
"         ret = xhr.responseText;"
"       };"
"     };"
"     xhr.send();"
"     return ret;"
" })();";
m_host->evaluateJavaScript(getconfig);

if (window && window->getJSObject()->HasProperty("window")) {
    std::string content = window->getProperty<std::string>("__config_txt__");
}
于 2011-12-05T07:08:38.460 に答える