<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小部件。我想从iframe的extsrc参数更新<input type="hidden" externalsrc="" value"" />
的值。
以下是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的值是“mywidget”直接取自iframe的源代码。可能吗?
谢谢,
答案 0 :(得分: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");