私は JavaScriptに設定href属性があるアンカーでページに移動するとき、私はちょうどそれ にGecko.GeckoWebBrowserとWinフォームアプリケーション を作成します。print()それをクリックすると、印刷ダイアログが表示されますが、そのダイアログのキャンセルボタンを押すと、Gecko.GeckoWebBrowserが破棄されます。つまり、コントロールがWM_DETROYメッセージを受け取ります。 ここで何が起きる可能性があるのか? どうすればそれを防ぐことができますか? 私はヤモリFX Gecko.GeckoWebBrowserウィンドウ手順とキャッチとバイパス窓のメッセージを変更しますが、ところで、私はXULRunnerの-11.0.en-US.win32とgeckofx-11.dllを使用して よろしくGeckoFX - リサイズ - のjavascript:プリント()
2
A
答えて
0
い を助けていないようです
上
firefoxコードを見ると、firefoxがWM_DESTROYメッセージを送信しているようです。
nsPrintingPromptService::ShowPrintDialog(nsIDOMWindow *parent, nsIWebBrowserPrint *webBrowserPrint, nsIPrintSettings *printSettings)
{
NS_ENSURE_ARG(parent);
HWND hWnd = GetHWNDForDOMWindow(parent);
NS_ASSERTION(hWnd, "Couldn't get native window for PRint Dialog!");
return NativeShowPrintDialog(hWnd, webBrowserPrint, printSettings);
}
nsresult NativeShowPrintDialog(HWND aHWnd,
nsIWebBrowserPrint* aWebBrowserPrint,
nsIPrintSettings* aPrintSettings)
{
PrepareForPrintDialog(aWebBrowserPrint, aPrintSettings);
nsresult rv = ShowNativePrintDialog(aHWnd, aPrintSettings);
if (aHWnd) {
::DestroyWindow(aHWnd);
}
return rv;
}
なぜこれがこれを行うのかわかりません。この問題を解決するために
いくつかのオプション: "print.always_print_silent"
- ターン提供し、独自のnsIPrintingPromptService
- を登録提供し、独自のnsIWindowWatcherサービスを登録します。
nsIWindowWatcherの方法はGetHWNDForDOMWindowを見てこれを行うための適切な方法のようになります。
HWND
nsPrintingPromptService::GetHWNDForDOMWindow(nsIDOMWindow *aWindow)
{
nsCOMPtr<nsIWebBrowserChrome> chrome;
HWND hWnd = NULL;
// We might be embedded so check this path first
if (mWatcher) {
nsCOMPtr<nsIDOMWindow> fosterParent;
if (!aWindow)
{ // it will be a dependent window. try to find a foster parent.
mWatcher->GetActiveWindow(getter_AddRefs(fosterParent));
aWindow = fosterParent;
}
mWatcher->GetChromeForWindow(aWindow, getter_AddRefs(chrome));
}
if (chrome) {
nsCOMPtr<nsIEmbeddingSiteWindow> site(do_QueryInterface(chrome));
if (site)
{
HWND w;
site->GetSiteWindow(reinterpret_cast<void **>(&w));
return w;
}
}
関連する問題
- 1. スクロールダウン[GeckoFx + Javascript]
- 2. JavaScript - スムーズ移動/リサイズ
- 3. GeckoFxとXULRunnerの
- 4. geckofx用Google Earthプラグイン
- 5. Geckofxコア - 私のWindowsでSystem.DllNotFoundException
- 6. GeckoFXブラウザ:JavaScriptからC#関数を呼び出す
- 7. ユーザーエージェントをランダム化するGeckoFX
- 8. GeckoFXでイメージをキャッシュする方法
- 9. GeckoFXの 'AddMessageEventListener'にエラーがあります
- 10. リサイズ
- 11. リサイズ -
- 12. リサイズ
- 13. リサイズ
- 14. リサイズ
- 15. VB。ネットGeckoFxのopenloadまたはok.ruは
- 16. log4jのプリント
- 17. qzの配列を使用する方法PHPのESCPプリントJavascript?
- 18. プリントCI
- 19. プリント値
- 20. プリント値、
- 21. プリント1
- 22. プリントtimestump
- 23. プリントexception.what()
- 24. リサイズjqueryブラインド
- 25. リサイズ後のレスポンシブウェブページスタイルの変更を防止する(JavaScript)
- 26. リサイズでdivsコンテンツの高さを取得する - バニラのjavascript
- 27. javascriptでオブジェクトの配列をプリントし、htmlタグで印刷する
- 28. XPMイメージのリサイズ
- 29. jQueryのリサイズ
- 30. HashMapのリサイズ