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

有关如何将字符串转换为位置的信息,请参阅此问题:Creating a new Location object in javascript

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 回答