0
<script>
            /* source parameters */
                    function GetURLParameter(sParam)
                    {
                        var sPageURL = window.location.search.substring(1);
                        var sURLVariables = sPageURL.split('&');
                        for (var i = 0; i < sURLVariables.length; i++)
                        {
                            var sParameterName = sURLVariables[i].split('=');
                            if (sParameterName[0] == sParam)
                            {
                                return sParameterName[1];
                            }
                        }
                    }
                    var mysrc = GetURLParameter("externalsrc");
                    if(mysrc == null) {
                        mysrc='another_site';
                        }
                    var objHidden = document.getElementById("externalsrc");
                    objHidden.value = mysrc;
</script>

以前は、サイトのHTMLページにフォームコードを直接ハードコーディングするときに、上記のコードを使用していました。上記のコードは、アドレスバーからURLパラメータを簡単にチェックし、externalsrcの値をフォームフィールドの値に渡します。ここで、外部の他の場所で使用できるポータブルiframeウィジェットを作成しました。<input type="hidden" externalsrc="" value"" />iframeのextsrc引数からの値を更新したいと思います。

iframeコードの例を次に示します。

<iframe src="http://www.example.com/joinuswidget.html?externalsrc=mywidget" marginheight="0" marginwidth="0" frameborder="0" height="350" scrolling="no" width="190"></iframe>

フォームのexternalsrcの値を、iframeのソースから直接取得した「mywidget」にしたいと思います。出来ますか?

ありがとう、

4

1 に答える 1

2

文字列を場所に変換する方法については、次の質問を参照してください:javascriptで新しいLocationオブジェクトを作成する

function convertStringToLocation(str) {
  var url = document.createElement('a');
  url.href = str;

  return url;
}

次に、GetURLParameter関数を更新して任意のURLを受け入れます。

function GetURLParameter(url, sParam) {
  var sPageURL = url.search.substring(1);
  // Everything past here is the same
}

最後に、iframeからsrcを取得します。

var iframe = document.getElementById('myiframe');
var input = document.getElementById('externalsrc');
var url = convertStringToURL(iframe.src);
input.value = GetURLParameter(url, "externalsrc");
于 2012-09-26T19:44:39.713 に答える