[mapguide-users] Calling viewer api functions from the main page
A H
hizperion at hotmail.com
Tue Jun 10 05:34:09 EDT 2008
i have tried getElementId() but i didn't use iframe.contentWindow and i tried
iframe.contentWindow but didn't use getElementId(). i don't know why i
didn't use both!
but its working now. i have this same problem with other projects so they're
also fixed.
many thanks!
Kenneth Skovhede, GEOGRAF A/S wrote:
>
> I can clearly see an error in firebug.
> It says "parent.imapframe has no properties".
> And that is true. The button is running in the same document as the
> iframe.
> Thus the documents parent is the window, and it has no iframes.
>
> You should not rely on getting and entry by using its ID as the variable
> name, as that is not W3C compliant.
> You should use document.getElementById() instead.
>
> There exists functions to get the correct frame, use "GetMapFrame()".
> I have fixed the code in your example.
>
> To examine what happens, try the following:
> 1. Start the page in firefox
> 2. Activate firebug
> 3. Select the "Script" tab
> 4. Select the page in the dropdown next to the "inspect" button (topmost)
> 5. Click next to the number 15 on the right (the line: var iframe =
> document.getElementById('imapframe');)
> 6. Click the "Refresh" button in the page.
> 7. Observe the line gets highlighted in firebug
> 8. On the pane to the right, try to click on "New watch expression..."
> 9. Try to enter the following (press enter after each): parent, window,
> document.getElementById('imapframe')
> 10. Examine their properties by clicking the + signs below
>
> You can step to the next line by pressing F10.
> On line 23, try to press F11 to step into the function.
> Press F8 to resume the javascript.
>
> This is the HTML I used:
>
> <html>
> <head>
> </head>
> <body>
>
> <iframe id="imapframe" frameborder="0" height="600" scrolling="no"
> width="800"
> src="/mapguide/mapviewernet/ajaxviewer.aspx?WEBLAYOUT=Library://Samples/Sheboygan/Layouts/SheboyganAsp.WebLayout&USERNAME=Anonymous&PASSWORD="></iframe>
>
> <input type="button" value="refresh" onclick="test()" />
>
> <script type="text/javascript">
> function test()
> {
> //Get the iframe
> var iframe = document.getElementById('imapframe'); //Set breakpoint
> here
> //var iframe = imapframe; <-- Non-standard compliant way, but
> usually works
>
> //Some browsers return the <iframe> tag, others return the contents,
> this evens it out
> if (iframe.contentWindow)
> iframe = iframe.contentWindow;
>
> //Use the utility function to get the map frame
> iframe.GetMapFrame().Refresh(); //Try F11 here
>
> //The original code
> //parent.imapframe.mapFrame.Refresh();
>
> //Alternative, depends on the internal layout of the viewer
> iframe.mapFrame.Refresh();
> }
> </script>
> </body>
> </html>
>
> Regards, Kenneth Skovhede, GEOGRAF A/S
>
>
>
> A H skrev:
>> well there's no error, so firebug didn't detect anything.
>>
>>
>> you can try on this,
>>
>> this is the iframe,
>>
>> <iframe id="imapframe" frameborder="0" height="600" scrolling="no"
>> width="800" src="/mapguide/mapviewernet/ajaxviewer.aspx?SESSION=<%=
>> get_session() %>&WEBLAYOUT=<%= get_layout() %>"></iframe>
>>
>>
>> and a button,
>>
>> <input type="button" value="refresh" onclick="test()" />
>>
>>
>> and the refresh command,
>>
>> <script type="text/javascript">
>> function test()
>> {
>> parent.imapframe.mapFrame.Refresh();
>> }
>> </script>
>>
>>
>> i've been googling for some time and still haven't find a solution to
>> make
>> this work in Firefox.
>>
>>
>>
>>
>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>
>>> If you install firebug, you can inspect the code, and examine the
>>> objects you are calling:
>>> http://www.getfirebug.com/
>>>
>>> Next step would be to look at "MapGuide Developers Guide" page 19:
>>> http://mapguide.osgeo.org/2.0/documentation.html
>>>
>>> You can see how the viewer frames are laid out, and see what
>>> "parent.parent" points to.
>>> Page 18 describes what the frames are for and page 20-25 describe
>>> concrete cases.
>>>
>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>
>>>
>>>
>>> A H skrev:
>>>
>>>> sadly this doesn't work in Firefox. have anyone done this in Firefox?
>>>>
>>>>
>>>>
>>>> uXuf wrote:
>>>>
>>>>
>>>>> Okay thanks. parent.viewerFrame.mapFrame works like a charm!
>>>>>
>>>>> uXuf
>>>>>
>>>>>
>>>>> Ivan Milicevic-3 wrote:
>>>>>
>>>>>
>>>>>> try parent.viewerFrame.mapFrame.Refresh(); od
>>>>>> window.frames.mapFrame.Refresh();
>>>>>>
>>>>>> ________________________________
>>>>>>
>>>>>> From: mapguide-users-bounces at lists.osgeo.org on behalf of uXuf
>>>>>> Sent: uto 8.1.2008 22:43
>>>>>> To: mapguide-users at lists.osgeo.org
>>>>>> Subject: [mapguide-users] Calling viewer api functions from the main
>>>>>> page
>>>>>>
>>>>>>
>>>>>> Hi all, I am trying to access the Viewer API functions from the main
>>>>>> page
>>>>>> of my application, i.e. the page that has the WebLayout embedded (or
>>>>>> the
>>>>>> iframe). I cannot seem to grab the exact frame from which these
>>>>>> functions
>>>>>> would be accessible. I tried using
>>>>>> document.getElementById("viewerFrame").GetMapFrame() (viewerFrame is
>>>>>> the
>>>>>> name of the iframe) putting it in the onload function of the iframe
>>>>>> but
>>>>>> it returns "Object doesn't support this property or method". Can
>>>>>> anyone
>>>>>> help me in this regard? Thanks! uXuf
>>>>>>
>>>>>> ________________________________
>>>>>>
>>>>>> View this message in context: Calling viewer api functions from the
>>>>>> main
>>>>>> page
>>>>>> <http://www.nabble.com/Calling-viewer-api-functions-from-the-main-page-tp14699670s16610p14699670.html>
>>>>>> Sent from the MapGuide Users mailing list archive
>>>>>> <http://www.nabble.com/MapGuide-Users-f14845.html> at Nabble.com.
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> mapguide-users mailing list
>>>>>> mapguide-users at lists.osgeo.org
>>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>> _______________________________________________
>>> mapguide-users mailing list
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>
>
--
View this message in context: http://www.nabble.com/Calling-viewer-api-functions-from-the-main-page-tp14699670p17751344.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
More information about the mapguide-users
mailing list