- PR -

javascriptにて他画面の操作について

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2005/03/23
投稿数: 105
投稿日時: 2006-11-22 11:01
いつもおせわになります。

現在JSPにてPGを行っていますが
JSPページ(画面A)よりjavascriptにてもう一つ指定したURLの
ページを立ち上げ(画面B)その画面の操作を行いたいのですが・・・

ちなみに画面Aは自サーバー、画面Bは業者のホームページ 別サーバー
という構成になっています。

具体的には画面Aのボタンをクリックするともう一つブラウザがたち
あがり画面BにログインIDとパスワードをセットしボタンを押しログイン
する動作を画面Aのjavascriptにて記述してやりたく以下のコーディング
をしました

wnd = window.open("https//業者URL.jsp");
wnd.document.getElementById('customerUserId').value = 'userid'; @
wnd.document.getElementById('passWd').value = 'password';
wnd.document.getElementById('loginbtn').click();

こうすると@の部分で'アクセスが拒否されました。'
とエラーが出力され、インターネットで調べた結果、他サーバーのページ
に値のセットなどをするのはセキュリティー上できないような書き込みを
みつけました その部分はなんとなく理解出来るのですが

同じような操作をVB6.0から実行したところ問題なく処理すること
が出来ました。
ソース

Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate strURL(とび先のURL)
IE.Visible = True
Do While IE.Busy
DoEvents
Loop

If Not Mfc_SetIE_Object(obj01, IE, "UserId") Then Exit Sub
obj01.Value = P_Ini_HP_ID
If Not Mfc_SetIE_Object(obj01, IE, "passWd") Then Exit Sub
obj01.Value = P_Ini_HP_PASS
If Not Mfc_SetIE_Object(obj01, IE, "loginButton") Then Exit Sub 'ログイン
obj01.Click
Do While IE.Busy
DoEvents
Loop
 〜

Private Function Mfc_SetIE_Object(objDmy As Object, IE As Object, strSetCtl As String) As Boolean
On Error GoTo ErrTrap
Mfc_SetIE_Object = False
Set objDmy = Nothing
Set objDmy = IE.Document.getElementByID(strSetCtl)
If objDmy Is Nothing Then
Sleep (3000)
DoEvents
Set objDmy = Nothing
Set objDmy = IE.Document.getElementByID(strSetCtl)
If objDmy Is Nothing Then
Set IE = Nothing
Set objDmy = Nothing
Mfc_SetIE_Object = False
Call MsgBox("データの設定に失敗しました。入力してください。", vbApplicationModal + vbMsgBoxSetForeground, GC_APNAME)
Else
Mfc_SetIE_Object = True
End If
Else
Mfc_SetIE_Object = True
End If
Exit Function
ErrTrap:
Mfc_SetIE_Object = False
End Function

上記コードで実現できました。
この場合はなぜ実現できるのかがよくわかりません。
なぜjavascriptの時は駄目なのでしょうか
この辺りわかられる方がおられましたら
宜しくお願いします。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2006-11-22 11:52
Webという開かれた(誰でも実行できる)環境におけるセキュリティへの配慮、としか言いようがないと思いますが。
1

スキルアップ/キャリアアップ(JOB@IT)