VB6 + WebBrowser + JavaScript


Mr.Erika  2004-01-22 01:47:56  No: 81616

はじめまして、ココには初めて質問ささせてもらいます。
タイトル通り、VB6+WebBrowserで、自作ブラウザーを作成していますが、
JavaScript の関係で大変困っています。

●ホームページ側のソース
ページ側で Javascript を使用し、
var newWin = window.open("","test02","height=400,width=400");
newWin.docuemnt.write("テスト");

の様な記述がしてあると、Javascriptが「アクセスが拒否されました」
とのエラーをだしてしまいます。
※IEでは動きます。また、URLを省略せず、空白のページを
  指定してやると、自作ブラウザでも動きました。

●自作ブラウザ側
NewWindow2 メソッドにて、
  Set frmNew = New frmBrowser  '新しいフォームを作成。表示。
  frmNew.childFlag = True
  Load frmNew

  '新しいWebBrowserに表示するように設定する。
  Set ppDisp = frmNew.WebBrowser1.object
  Cancel = false

としていますが、Javascript の open.window にてURL指定しない
場合のみ、この現象が起きています。

この現象の原因、及び、回避方法をご存知でしょうか?。

宜しくお願い致します。


魔界の仮面弁士  2004-01-22 12:03:00  No: 81617

> JavaScript の関係で大変困っています。
厳密にはJavaScriptではなく、JScriptですね。

> var newWin = window.open("","test02","height=400,width=400");
> newWin.docuemnt.write("テスト");
『newWin.docuemnt.write("テスト");』ではなく、
『newWin.document.write("テスト");』でなければいけません。

もし、スクリプトのエラーをVB側で検知したいのであれば、
NavigateComplete2イベント発生時に、pDisp.Document.parentWindow を捕らえ、
windowオブジェクトのonerrorイベントを調べるようにしてみて下さい。


Mr.Erika  2004-02-05 03:25:15  No: 81618

返信が大変遅くなってしまいました。
魔界の仮面弁士 さんありがとう御座います。

newWin.docuemnt.write については、私の書き損じでした。
また、私の書き方が悪く、何を問題にしているのかが、判らない文面でした。

再度、問題を記載します。

●やりたいこと
自作ブラウザー(VB6)にて、
1.JScript の window.open にて新しいウィンドウを開け。
2.そこへ、親ウィンドウから、JScript へ文章を書き込む。
と言う物です。
基本、HTML側のソースは触ることが出来ません。

●問題点
現在の問題点は下記の通りです。
1.親ブラウザから子ブラウザを開ける。
  newWin = window.open("","test02","height=400,width=400");
  の様に、URL を省略している。
2.親から子へ、JScriptを使用し、書き込みをする。
  この時、newWin.document.writeを使用
3.「アクセスが拒否されました」のエラーが発生する。

●調査
1.URLに空白のページを指定してやると、エラーが発生しない。
  例>window.open("brank.html","test02","height=400,width=400");
2.URL に about:brank を指定しても、エラーが発生する。

●参考
I.E.の場合、エラーは全くでません。

どうにかして、JScript で書かれている、
newWin = window.open("","test02","height=400,width=400");
newWin.document.write("テスト");
に対応する方法はないでしょうか?。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加