日期:2014-05-17  浏览次数:20426 次

JS模态窗口showModalDialog 如何访问父窗口的div属性
第一个页面中parent.aspx中有一个div(由于某些原因不能加ID)
<div top='true' alias='i_1' name='i_1' rowsIndex='1'></div> 
js中代码如下

 var arr = new Array();
           arr[0] = "a1";
            arr[1] = "a2";
            arr[2]=window;
var returnValue = window.showModalDialog("ControlSettings.aspx?key=" + key +  "&shield=" + shieldPropertys + "&Rnd=" + Math.random(), arr, "dialogWidth:400px;dialogHeight:360px;scroll:no;status:no");

传了一些值过去,
然后我在ControlSettings.aspx页面要获取到parent页面div中的rowsIndx属性
我在js代码中这样写的 不知道为什么获取不到parent页面中那个div的属性(我得到的count是0)

//js获取到的count为0
var parent = window.dialogArguments[2];
var test = parent.document.getElementsByName("i_1");

//jquery报错说不支持此方法
rowIndex = $(("div[alias='i_1'][top='true']").attr("rowsIndex"),window.parent.document);


在这里想请教下各位大侠, 是哪里出问题了. 或者有什么其他方法可以获取到parent页面中那个div的rowsIndex. 非常感谢!
------最佳解决方案--------------------
var returnValue = window.showModalDialog("ControlSettings.aspx?key=" + key +  "&shield=" + shieldPropertys + "&Rnd=" + Math.random(), arr, "dialogWidth:400px;dialogHeight:360px;scroll:no;status:no");

parent页面在执行这句的时候,你的“div”都还没加载,所以在子页面是获取不到的,参考修改:
父页面:
 $(function() {
            var arr = new Array();
            arr[0] = "a1";
            arr[1] = "a2";
            arr[2] = window;
            //var key = 1;
            //var shieldPropertys = 1;
            var returnValue = window.showModalDialog("ControlSettings.aspx?key=" + key + "&shield=" + shieldPropertys + "&Rnd=" + Math.random(), arr, "dialogWidth:400px;dialogHeight:360px;scroll:no;status:no");
        });

子页面:
 <script type="text/javascript">
        //js获取到的count为0
        var parent = window.dialogArguments[2];
        var test = parent.document.getElementsByName("i_1");

        //jquery报错说不支持此方法
        var rowIndex = $("div[alias='i_1']", parent.document).attr("rowsIndex");
        alert(rowIndex);
    </script>

------其他解决方案--------------------
求大侠。。。自己顶一个先。
------其他解决方案--------------------
可以讲父页面的document传过去,或者将你想要操作的d