js怎样获取iframe,src中的参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js怎样获取iframe,src中的参数相关的知识,希望对你有一定的参考价值。

<iframe id="newid" scrolling="no" width="100%" height="420" frameborder="0" src=“xxx.ccom/id=2&aid=3”></iframe>

以下js代码获取的全部是全部地址:
<script>
var newcss = document.getElementById('newid').src;
document.write(newcss);
</script>

想要的结果是地址中aid的参数值:3

/*
    取得目标iframe src所包含的参数
    @param iframeId - 目标iframe的id
    @return Object 参数名值对,{参数名:参数值,……}
*/
function getIframeParams(iframeId) 
    var regexpParam = /\\??([\\w\\d%]+)=([\\w\\d%]*)&?/g; //分离参数的正则表达式
    var targetEle = document.getElementById(iframeId);
    
    var paramMap = null;
    
    if(!!targetEle) 
        var url = targetEle.src; //取得iframe的url
        
        var ret;
        
        paramMap = ;//初始化结果集
        
        //开始循环查找url中的参数,并以键值对形式放入结果集
        while((ret = regexpParam.exec(url)) != null) 
                //ret[1]是参数名,ret[2]是参数值
            paramMap[ret[1]] = ret[2];
        
    
    
    return paramMap; //返回结果集

用法:

假设iframe如下

<html>
    <head>
    </head>
    <body>
        <iframe id="test" src="url?paramA=a&paramB=b"></iframe>
    </body>
</html>

//获取参数名值对集合
var paramMap = getIframeParams('test');
//paramMap的结构是这样的:'paramA':'a', 'paramB':'b'
alert(paramMap.paramA); //取出paramA的参数值

参考技术A var newcss = document.getElementById('newid').src;
// var srcx = "xxx.ccom/id=2&aid=3";
var reg = /.*aid\=([^\&]+).*/g;
console.log(newcss.replace(reg,"$1"));追问

额,怎么调用呢?

追答1. 触发事件调用,看你怎么用
2. 这个给你参考、
<!DOCTYPE HTML>
<html>
<head>
<meta charset=utf-8/>
<title>caller</title>
<script>
window.onload=function()
    var newcss = document.getElementById('newid').src;
    // var srcx = "xxx.ccom/id=2&aid=3";
    var reg = /.*aid\\=([^\\&]+).*/g;
    var result = newcss.replace(reg,"$1");
    console.log(result);

</script>
<body>
<iframe id="newid" scrolling="no" width="100%"  height="420"  frameborder="0" src="xxx.ccom/id=2&aid=3"></iframe>
</body>
<html>

追问

还没看明白,怎么输出aid的结果呢?

document.write(?);

追答

document.write(newcss.replace(reg,"$1"));

本回答被提问者采纳
参考技术B

    获得节点:var n = document.getElementById('newid');

    弹出节点内容:alert(n.src);

iframe 表单参数获取不到

主页面a.php里面有个form form中包含了iframe框架,
a.php如下
<form method="post" action="search.php" onSubmit="return checkSearchForm()" >
<iframe src="searchform.php" height="30" align="top" scrolling="no" frameborder="0" width="260"></iframe>
<input name="keywords" type="text" id="keyword"/><input type="submit" value="搜索" />
</form>
iframe框架内容如下,有个下拉列表
<select name="type" id="type">
<option value="0">请选择option>
<option value=="1">杂志</option>
<option value=="2">文摘</option>
</select>

问题来了,为什么提交的时候在search.php里面获取不到iframe里面type的值呢,如果直接把select放到a.php里面就能获取到,这个iframe传值要怎么设呢

这个控件已经跨了页面,不在search.php里面,而是在searchform.php里面,所以你在search.php页面里面提交后找不到控件哦! 参考技术A 你生成的这个页面没有runat=server啊!后台怎么能得到值呢!

以上是关于js怎样获取iframe,src中的参数的主要内容,如果未能解决你的问题,请参考以下文章

用js控制video的src

用js控制video的src

js传值到iframe中

怎么获取 iframe转跳的网址

IMG src 中如何用js

js 怎么获取iframe 的高度?