jquery查找并替换iframe src

时间:2014-07-18 22:54:40

标签: javascript jquery redirect iframe

我需要在页面加载的iframe中加载一个url(这是有效的),然后获取该加载的iframe的整个url,然后将url保存为变量后我想在&#34之间找到任何文本;目标"和" /" (示例url http://www.example.com/user/target09576/index.php我希望找到09576)然后使用找到的文本(09576)重定向整个页面作为重定向网址的一部分。

我知道,错误的解释并不是一个很好的解决方案,但任何帮助都会受到赞赏。

$(document).ready(function() {
        var iframe = $('#wmif');
        var url = '<? echo "".$redirectlocation.""; ?>';
        iframe.attr('src', url);
        var searchurl = iframe.contentWindow.location;
        var rep = /(.*target\s+)(.*)(\s+\/.*)/;
        var target = searchurl.replace(rep, '$2');
        window.location = 'http://example.com/go/index.php?target='+target;
}); 

好吧iframe加载新位置确定,但它没有做任何其他的。

2 个答案:

答案 0 :(得分:1)

我会这样做,但结果相同,但jQuery和更新的regex

$(document).ready(function () {
    var iframe = $('#wmif');
    var url = ''<? echo "".$redirectlocation.""; ?>';
    iframe.attr('src', url);
    //var searchurl = iframe.contentWindow.location; <- Invalid
    console.log($('#wmif').contents().get(0).location);
    var searchurl = $('#wmif').contents().get(0).location.href;
    console.log(searchurl);
    var rep = /.*\/target(\w+)\/.*/;
    var target = searchurl.replace(rep, '$1');    
    console.log(target);
    window.location = 'http://domain.com/go/index.php?target=' + target;
});

答案 1 :(得分:1)

另一种解决方案

var matches = /target\s?([^\/]+)/.exec('http://www.domain.com/user/target09576/index.php')

var matches = /(?:target\s?)([^\/]+)/.exec('http://www.domain.com/user/target09576/index.php')
console.log(matches[1]);    //  09576

如果您不希望目标与数字之间有空格,请将正则表达式修改为此/(?:target)([^\/]+)/