今開いているIEの複製作成?

[新着] Webテンプレートを仮オープンしました



0   名前: yoro : 2006/08/08(火) 23:50  ID:UkbhveQ3
今、あるHPを開いているとします。
このHPはFORMのPOSTメソッドで引数指定され開かれています。
↑表現がおかしいですかね?

このHPをコンテキストメニューから開きたくて(複製作成)

open(external.menuArguments.top.window.location.href);

としてもPOSTの引数部分が拾えていないので複製作成が
できません。

何か良い方法は無いでしょうか?

宜しくお願いします。

1   名前: 元帥 : 2006/08/08(火) 23:50  [URL]  ID:09V/9WPI
そのHPを、GET形式でクエリを送信して開くように、修正すればよいと思いますが。

POSTとGETがどんなものか、よく確かめて下さい。
サーバーにリクエストを送る時、一緒に送られる値です。
サーバーが返すのは出力結果であって、POSTやGETではありません。
ただ、GETはURL末尾に付くのでJavaScriptから取得可能ですが、POSTはそういうわけにはいきません。

方法としまして、POSTで送る値をクッキーにでも保存しておき、JavaScriptでクッキーを読み出して、POSTでクエリを送信すれば良いです。

2   名前: yoro : 2006/08/08(火) 23:50  ID:UkbhveQ3
元帥さん、コメントありがとうございます。

> そのHPを、GET形式でクエリを送信して開くように、修正すればよいと思いますが。

相手が不特定多数のHP(Webデータベース中心です)であり、特別な監視ソフトなどを
利用しないと無理ではないでしょうか?

> POSTとGETがどんなものか、よく確かめて下さい。
> サーバーにリクエストを送る時、一緒に送られる値です。
> サーバーが返すのは出力結果であって、POSTやGETではありません。
> ただ、GETはURL末尾に付くのでJavaScriptから取得可能ですが、POSTはそういうわけにはいきません。
> 方法としまして、POSTで送る値をクッキーにでも保存しておき、JavaScriptでクッキーを読み出して、POSTでクエリを送信すれば良いです。

これも、不特定多数のHPに対して、可能でしょうか?
何か隠し技的な物で、POSTのGETでの?以降に相当する文字列を取得する方法は無い物かと
思って質問しました。→ 多分、おっしゃるように仕様上無理でしょうね・・・

とりあえず、今の代替処理としては、outerHTMLを取得し書き出しています。
(BASE url を指定し)
ただ、この方法では、ブラウザのアドレス欄が about:blank になってしまいます。







3   名前: NullPo : 2006/08/08(火) 23:50  ID:XoE1slt9
もし、考えていることが不特定の他人のページを開いていてそのページをそっくりそのまま新しいウィンドウで開きたいということならば。
POSTで開いたページは難しいですかね。GETならいいのですが。
何しろ他人のページに対してGETになるよう編集するわけにはいかないし、クッキーも使えないでしょうね。
IEなら ファイル>新規作成>ウィンドウ ではダメなんですかね。
JavaScriptは使わないですけど。

4   名前: yoro : 2006/08/08(火) 23:50  ID:UkbhveQ3
NullPoさん、情報ありがとうございます。

> IEなら ファイル>新規作成>ウィンドウ ではダメなんですかね。
> JavaScriptは使わないですけど。

じつはIEにもそのようなメニューが有ったはずと思っていたのですが
気づかなかったです。ありがとうございました。

また、あるフレームのみを、別ウインドウ表示ともできないかとも
考えておりました。
open(external.menuArguments.location.href); のケース

ファイル>新規作成>ウィンドウ の動作をJavaScriptから操作できるのなら、
フレームの場合でも何とかできる可能性あるとも考えますが、

多分ダメでしょうね・・

5   名前: m035 ◆Wpzr1YKOiq : 2006/08/08(火) 23:50  [URL]  ID:DAScmKmy
WSH(JScript)なら下記で出来ると思います。
ただ、最近はセキュリティがきつくて使い物になりませんが・・・。

var WshShell=new ActiveXObject("WScript.Shell");
WshShell.SendKeys("^n");

一覧へ戻る