- PR -

IE6において、iframeのsrc属性として&が認識されない

1
投稿者投稿内容
Dr.Mancini
常連さん
会議室デビュー日: 2003/01/23
投稿数: 35
投稿日時: 2006-10-30 18:29
いつもお世話になっております。
質問させていただきます。

開発・実行環境は、
IIS5.0
ASP.NET2.0
VS2005
です。

例えば、「parent.aspx」の中に、iframeによって「frame.aspx」が呼び出されています。
iframeのURLを指定するsrc属性は、以下のようにparent.aspxによって動的に指定されます。

=====< parent.aspx.cs >=======================================
protected void Page_Load(object sender, EventArgs e)
{
iframe1.Attributes["src"] = "frame.aspx?bu=AAA&ka=BBB";
}
===========================================================

実際に実行してソースを確認すると、
以下のように、「&」の部分が「&amp;」がエスケープされます。

=====< parent.aspx >=======================================

<iframe id="iframe1" src="frame.aspx?bu=AAA&amp;ka=BBB"></iframe>

===========================================================

しかし、FirefoxやOperaはこのままでも問題ありませんが、
IEの場合はこのままだとパラメータが正常に認識されず、困っております。

エスケープせずに、
<iframe1 src="frame.aspx?bu=AAA&ka=BBB"></iframe>
としてやる事が出来れば解決する気もしますが、その方法も分かりません。

どなたか、解決方法をご教授をいただきたく思います。
よろしくお願いいたします。


THREE-ONE
常連さん
会議室デビュー日: 2006/08/17
投稿数: 36
投稿日時: 2006-10-30 23:34
こんばんは、THREE-ONEです。

-- aspx --
<iframe id="iframe" src="<%= this.IFrameSrcUrl %>"></iframe>

-- Code Behind --
protected string IFrameSrcUrl
{
get { return "frame.aspx?bu=AAA&ka=BBB"; }
}

とすればお望みの動作になると思います。
あまりASP.NETらしからぬソースではありますが。

# でも私の環境だと &amp; にエスケープされていても正しくパラメータが取得できましたけど
# ちなみに WinXP, VS2003, IE6 です。(ちょっと環境違いますね)
Dr.Mancini
常連さん
会議室デビュー日: 2003/01/23
投稿数: 35
投稿日時: 2006-10-31 09:23
THREE-ONE様、お返事ありがとうございました。
おかげさまで、iframeにエスケープすることなく、srcの指定が出来ました。

しかし、文末でおっしゃっているように、
iframeに対してのパラメータ認識が出来ない点は、本件では解決しませんでした。
&amp;でも問題ないようなので、原因についてはまた調べてみたいと思います。
事前の調査不足で申し訳ございませんでした。


1

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