两点
1.既然你用jQuery了,为什么还要用getElementById()来获取元素?况且,获取iframe中元素也没这么麻烦啊
$("#id_iframe").contents().find("#id_button_test");
这不就好了。。
2.你这部分代码是写在a.jsp页面中了吧?那我估计之所以不运行,是因为你注册点击事件的时候,b.jsp页面还没有加载完。所以尽管你调试的时候能输出,但是代码里是注册不上的。把这段代码写在b.jsp的window.onload事件中
$(doc).find("#id_button_test").click(function(){
alert("test");
});
这么做,只是在按钮上注册了click事件函数,并没有触发。当你点击按钮的时候,就能看到alert弹出框了。
要触发click事件,可以使用trigger方法。
$(function(){
//注册click事件函数。
$(doc).find("#id_button_test").click(function(){
alert("test");
});
//立即触发click事件
$(doc).find("#id_button_test").trigger("click");
});
$(function(){
var doc = document.getElementById('id_iframe').contentWindow.document;
$(doc).find("#id_button_test").click(function() {
alert("test");
});
});