[mapguide-users] OnSelection Event?

clarkie342 f2000342 at gmail.com
Fri Jan 9 14:46:06 EST 2009


iframe does not have a name attribute, has a id attribute instead. 
Here is the modified code that is working for me

    <script type="text/javascript">
        var origOnSelectionChanged = null;
        function MySelectionHandler(){
            origOnSelectionChanged();
            var mapFrame =
document.getElementById("viewerFrame").contentWindow.GetMapFrame();
            var count = mapFrame.GetSelectedCount();
            alert(count + " features selected");
        }
        window.onload = function(){
            var timer;
            var watch = function(){
                try {
                    var mapFrame =
document.getElementById("viewerFrame").contentWindow.GetMapFrame();
                    if(mapFrame.mapInit){
                        clearInterval(timer);
                        origOnSelectionChanged =
mapFrame.parent.OnSelectionChanged;    
                        mapFrame.parent.OnSelectionChanged =
MySelectionHandler;
                    }
                }
                catch(e) {
                }
            };
            timer = setInterval(watch, 200);
        };
    </script>

document.getElementById("viewerFrame").contentWindow - this returned
Window
ajaxviewer.aspx?SESSION=86381ee6-ffff-ffff-8000-001ec9fcf959_en_90C340330AF20AF10AF0&WEBLAYOUT=Library://xxxx/xxxxx/xxxx/xxx.WebLayout
 
and this is the only way I was able to get a reference to GetMapFrame()
function. 

document.getElementById("viewerFrame").contentWindow.GetMapFrame() - this
returned
Window
mapframe.aspx?MAPDEFINITION=Library%3a%2f%2fxxxx%2fxxxx%2fMap%2fxxxx.MapDefinition&TYPE=HTML&SHOWLEGEND=0&SHOWPROP=0&INFOWIDTH=0&LOCALE=en&HLTGT=1&HLTGTNAME=&SHOWSLIDER=1&SESSION=11fc683c-0000-1000-8000-001ec9fcf959_en_90C340330AF20AF10AF0

also I had to use .parent to get OnSelectionChanged Event.

Out of curiosity, I also tried this in dotnetviewersample.aspx. It worked.
There I can replace document.getElementById("viewerFrame").contentWindow
with viewerFrame.contentWindow. Looks like this is a difference between
iframe and Frameset.

Thanks for the responses. 
-----------------


Jackie Ng wrote:
> 
> you can't use document.getElementById() to access frames, you have to
> reference the frame with a variable of the same name, and your
> frame/iframe must have its "name" attribute defined
> 
> - Jackie 
> 
> 
> clarkie342 wrote:
>> 
>> After posting my question I did find a reference to the sample you have
>> sent below. It was well explained, but it did not work with my code. So I
>> tried to add it to the <HEAD> of the dotnetviewersample.aspx. It did not
>> work their either.
>> 
>> The problem with my code as I noticed is this javascript is not able to
>> get a reference to my viewer frame.
>> As I mentioned I am using an iframe with id 'viewerFrame'. My app uses
>> master pages and this iframe is inside a contentplaceholder. I also tried
>> 
>> document.getElementById(“viewerFrame”).contentWindow.GetMapFrame();
>> 
>> came back as object not found. Am I working with the right issues or is
>> it all supposed to work irrespective of the frame type? Thanks for any
>> help.
>> 
>> 
>> Jackie Ng wrote:
>>> 
>>> This is javascript code that hooks onto events from the viewer frame. 
>>> 
>>> So the code should go in the page that launches the viewer frame.
>>> 
>>> A more detailed explaination here:
>>> http://trac.osgeo.org/mapguide/wiki/CodeSamples/JavaScript/AJAXViewerEventHooking
>>> 
>>> - Jackie
>>> 
>>> 
>>> clarkie342 wrote:
>>>> 
>>>> Hi Jason,
>>>> 
>>>> I am trying to implement your suggestion below to make use of the
>>>> OnSelectionChanged Event Handler in mainframe.templ
>>>> I have a asp.net page with iframe showing a mapguide map. I want to be
>>>> able to do bunch of things when the user selects features on this map. 
>>>> I am not very clear on how you are implementing your SelectionChanged
>>>> function instead of the original one. Where should this script go?
>>>> Appreciate your help.
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>>> Jason Birch wrote:
>>>>> 
>>>>>  
>>>>> There is an OnSelectionChanged function in the main frame, but it
>>>>> doesn't appear to be documented.
>>>>>  
>>>>> I've just tried playing around with this, and I got the following to
>>>>> work when inserted into the <head> of the ajaxviewersample.php file. 
>>>>> It does not appear to work with the DWF viewer; maybe why it's not
>>>>> documented?  Or it could just be that my code is bad :)
>>>>>  
>>>>> <script type="text/javascript" >
>>>>>                               
>>>>> var originalOnSelectionChanged;
>>>>> var initTimer = setInterval(watchInitialized, 200);
>>>>> 
>>>>> function watchInitialized () {
>>>>>  try {
>>>>>   if(ViewerFrame.mapFrame.mapInit) 
>>>>>     {
>>>>>    clearInterval(initTimer);
>>>>>    originalOnSelectionChanged = ViewerFrame.OnSelectionChanged;
>>>>>    ViewerFrame.OnSelectionChanged = MyOnSelectionChangedHandler;
>>>>>     }
>>>>>    }
>>>>>    catch(Exception) {}
>>>>> }
>>>>> 
>>>>> function MyOnSelectionChangedHandler() {
>>>>>    originalOnSelectionChanged ();
>>>>>    var mapFrame = ViewerFrame.GetMapFrame();
>>>>>    selCount = mapFrame.GetSelectedCount();
>>>>>    alert("Selected: " + selCount);
>>>>> }
>>>>>  
>>>>> </script>
>>>>> 
>>>>>  
>>>>> 
>>>>> ________________________________
>>>>> 
>>>>> From: Willem Schwarte [mailto:willem at giskit.nl]
>>>>> Subject: [mapguide-users] OnSelection Event?
>>>>> 
>>>>> 
>>>>> I suppose there is no onSelectionChanged event like in MG6.5. So this
>>>>> would be done on a onClick? Where would I put the code for this?
>>>>> 
>>>>>  
>>>>> 
>>>>> 
>>>>>  
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: users-unsubscribe at mapguide.osgeo.org
>>>>> For additional commands, e-mail: users-help at mapguide.osgeo.org
>>>>> 
>>>> 
>>>> 
>>> 
>>> 
>> 
>> 
> 
> 

-- 
View this message in context: http://n2.nabble.com/OnSelection-Event--tp1804304p2134911.html
Sent from the MapGuide Users mailing list archive at Nabble.com.



More information about the mapguide-users mailing list