在带有哈希链接的iframe中运行jquery函数

时间:2013-04-20 16:14:19

标签: javascript jquery html

我可以使用哈希链接在iframe中运行jquery函数吗? 也许是这样的:

家长代码:

<a href="#runFunction" target="iframe">run function in iframe</a>
<iframe src="pageName.html" name="iframe"></iframe>

iframe代码:

$(document).ready(function(){
$('body').the parent link is clicked, changing the url to pageName.html#runFunction (function(){
//blah blah blah//
});
});

感谢

2 个答案:

答案 0 :(得分:1)

是的,您可以使用hashchange事件。只要你不介意不支持IE7 http://caniuse.com/hashchange

或者,还有一个可以回填的插件:http://benalman.com/projects/jquery-hashchange-plugin/

在父页面上,只需将iframe的URL更改为新的哈希值。

$("iframe").prop("src", "http://google.com/#newhash");

然后在iframe页面的docready中:

$(window).bind("hashchange", function() {
    alert(window.location.hash);
});

答案 1 :(得分:0)

我不确定你在这里尝试的是什么......但你可以试试这个:

'myIFrameFunction'是'pageName.html'中的函数...

父HTML:

<a href="#myIFrameFunction" target="iframe">click me for win</a>
<iframe src="pageName.html"></iframe>

iframe Javascript(只要要调用的函数全局声明[直接在脚本标记或js文件中]):

function testHash() {
    var hash = window.location.hash.split('#')[1];
    if ( typeof window[hash] != 'undefined' ) {
        window[hash]();
    }
}

var myTimer = setInterval(testHash, 100);

function myIFrameFunction() {
    alert('It Works!');
}