首页 新闻 会员 周边

关于jQuery的问题,父页使用子页的jQuery

0
悬赏园豆:10 [已解决问题] 解决于 2013-07-09 16:46

两个页面,父页和子页。

 

父页里有一个iframe,src指向子页

父页加载jQuery.js文件

子页没有加载jQuery.js

 

子页里代码如下

 

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script type="text/javascript">
        function aa() {
            var div = $("#dd");
            div.html("bbbbbbbbbbbbbbbb");
            
            var para =$.getUrlParameter(document);
            alert(para.aa);

        }

        var $ = function(select, rootjQuery) {
            if (typeof select == "undefined")
                return parent.window.$;
            else
                return parent.window.$(select, document, rootjQuery);
        };

        $.prototype = parent.window.$;
        
       
    </script>
</head>
<body>
    <div id="dd" onclick="aa()">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</div>
</body>
</html>

 

 

$.getUrlParameter(document);  这句报错,没有 getUrlParameter函数。


如果写成

 parent.window.$
.getUrlParameter(document); 就可以正常执行。


用chrome,调试 子页自己定义 的 $ 的 prototype 里有 getUrlParameter,不是说可以往下找吗?为啥没往下找呢?



 
问题补充:

想起来了。

 

但是 jQuery的 $ 为啥既可以 带括号,也可以不带括号呢?

 

刚才看了半天jQuery源码,发现他内部其实是 new了一下。还是不太明白。

金色海洋(jyk)的主页 金色海洋(jyk) | 菜鸟二级 | 园豆:290
提问于:2013-07-08 17:52
< >
分享
最佳答案
0
 function aa() {
            var div = $("#dd");
            div.html("bbbbbbbbbbbbbbbb");
            
            var para =$.getUrlParameter(document);
            alert(para.aa);

        }

        var $ = function(select, rootjQuery) {
            return parent.window.$(select, document, rootjQuery);
        };

        if (typeof parent.window.$ != "undefined") {
            var tmp = parent.window.$;
            for (var key in tmp) {
                $[key] = tmp[key];
            }    
        }
        

 

 

终于搞定了。

金色海洋(jyk) | 菜鸟二级 |园豆:290 | 2013-07-09 08:58
其他回答(2)
0

要访问原型中的属性, 首先要实例化出一个对象才行。

var x = new $();

x.getUrlParameter  ...

收获园豆:10
木头小木头 | 园豆:284 (菜鸟二级) | 2013-07-08 18:18
0

$.fn.getUrlParameter 不行么

TiestoRay | 园豆:687 (小虾三级) | 2013-07-08 19:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册