Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以更新隐藏的表单字段';通过检索iframe';什么是源参数? /*源参数*/ 函数GetURLParameter(sParam) { var sPageURL=window.location.search.substring(1); var sURLVariables=sPageURL.split('&'); 对于(变量i=0;i_Javascript_Jquery_Forms - Fatal编程技术网

Javascript 是否可以更新隐藏的表单字段';通过检索iframe';什么是源参数? /*源参数*/ 函数GetURLParameter(sParam) { var sPageURL=window.location.search.substring(1); var sURLVariables=sPageURL.split('&'); 对于(变量i=0;i

Javascript 是否可以更新隐藏的表单字段';通过检索iframe';什么是源参数? /*源参数*/ 函数GetURLParameter(sParam) { var sPageURL=window.location.search.substring(1); var sURLVariables=sPageURL.split('&'); 对于(变量i=0;i,javascript,jquery,forms,Javascript,Jquery,Forms,以前,当我直接在网站的HTML页面中硬编码表单代码时,我使用上述代码。上面的代码很容易从地址栏检查url参数,并将externalsrc的值指定给表单字段的值。现在,我创建了一个可移植的iframe小部件,可以在外部其他地方使用。我想从iframe的extsrc参数中更新的值 以下是iframe代码的示例: <script> /* source parameters */ function GetURLParameter

以前,当我直接在网站的HTML页面中硬编码表单代码时,我使用上述代码。上面的代码很容易从地址栏检查url参数,并将externalsrc的值指定给表单字段的值。现在,我创建了一个可移植的iframe小部件,可以在外部其他地方使用。我想从iframe的extsrc参数中更新
的值

以下是iframe代码的示例:

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

我希望表单的externalsrc值是直接从iframe的源中获取的“mywidget”。可能吗


谢谢,

有关如何将字符串转换为位置的信息,请参见此问题:

然后更新GetURLParameter函数以接受任何url:

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

  return url;
}
最后从iframe中获取src:

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

不是读取window.location,而是从iframe中读取src?如果是这种情况,则不会因为相同的源策略而发生在不同的域上。脚本如何查找iframe中的输入?第二个问题是,我应该把convertStringToLocation()函数放在第二个函数中吗?谢谢,我就快到了。@Acanthuslabs如果您的输入在iframe中,您可以在iframe中使用原始脚本。谢谢,@zach_maline。那么,如何在iframe本身中读取当前iframe的url呢?这个代码是如何实现的:var sPageURL=window.location.search.substring(1);在iframe中工作?可以修改吗?
窗口。对于在
中执行的脚本,位置应参考
src
属性中的值。一个
的行为本质上类似于嵌入当前站点的另一个单独加载的网页,因此您可以将其视为一个独立的网页。非常感谢,@zach_malone。
function GetURLParameter(url, sParam) {
  var sPageURL = url.search.substring(1);
  // Everything past here is the same
}
var iframe = document.getElementById('myiframe');
var input = document.getElementById('externalsrc');
var url = convertStringToURL(iframe.src);
input.value = GetURLParameter(url, "externalsrc");