Bug Tracker

Ticket #5392: jQueryIssue.html

File jQueryIssue.html, 2.3 KB (added by gbaker, 10 years ago)

Launches a popup which refs the opener windows JS object

Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
3<head>
4<title>eg. Issue</title>
5<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
6<script type="text/javascript">
7(function($){
8
9        function PopupWindow(url,name,w,h){
10                        LeftPosition = (screen.availWidth) ? (screen.availWidth-w)/2 : 0;
11                        TopPosition = (screen.availHeight) ? (screen.availHeight-h)/2 : 0;
12                        settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',toolbar=yes,menubar=yes,scrollbars=yes,status=yes'
13                        if(toolwin != undefined) {toolwin.close(); delete toolwin;}
14                        var toolwin = window.open(url,name,settings);
15                        toolwin.focus();
16                        return toolwin;
17        }
18
19        var getRootWindow = function(){
20                return (window['opener'] || window);
21        }
22
23        var MyObj = function(){
24                this.init();
25        };
26        MyObj.prototype = {
27                init:function(){
28                        this.debug = $("#debug");
29                        this.jLinks = $(".link");
30                        this.jLinksPopup = $([]);
31                        this.assignEvents(this.jLinks);
32                }
33                ,popupLoad:function(jQueryFromPopup){
34                        this.jLinksPopup = jQueryFromPopup(".link");
35                        this.assignEvents(this.jLinksPopup);
36                }
37                ,assignEvents:function(jObj){
38                        var self = this;
39                        /*  line 2694 : handler is not a function, it is an object */
40                        jObj.click(function(){
41                                PopupWindow(this.href, 'blaa', 400, 200)
42                                self.debug.html(self.debug.html() + " Booya!");
43                                return false;
44                        });
45
46                        /* I found Native Event handler for all IE's sorts the issue out
47                        if(window['addEvent']) {
48                                window.addEvent(this,"click",fn);
49                        } else {
50                                $(this).click(fn);
51                        }
52                        */
53
54                }
55        }
56
57        //Dom ready
58        $(function(){
59                /* Get the root window so that the popup remove actions will occur in the opener window (if it exists) */
60                var dataBlock = window.dataBlock = getRootWindow()['dataBlock'] || {};
61
62                if(dataBlock.myInstanceObj == undefined) {
63                        dataBlock.myInstanceObj = new MyObj();
64                }
65                if(getRootWindow() != window) {
66                        dataBlock.myInstanceObj.popupLoad($);
67                }
68        });
69
70})(jQuery);
71</script>
72</head>
73<body>
74        <div class="links">
75                <ul>
76                        <li><a class="link" href="#nota" title="Click Me">Click Me</a></li>
77                </ul>
78        </div>
79        <p id="debug"></p>
80</body>
81</html>