2015-10-15 2 views
0

Comment implémenter une fonction événementielle qui déclencherait un événement click à partir d'un élément de document .Action sur les éléments iframe du document déclencher l'événement événement

Je dois prendre l'action de document.getElementById("iframe-id").contentWindow.window.document.getElementById("hello-abc"). Est-il possible de mettre en œuvre en utilisant Backbone.View()?

<!-- Sample example --> 
 
<html> 
 
<head></head> 
 
<!-- parent #document --> 
 
<body> 
 
    <div class="height-inherit"> 
 
    <div id="pdf-overlay" class="modal fade in" data-replace="true" aria-hidden="false" data-keyboard="false" style="overflow-y: hidden !important; display: block;"> 
 
     <div class="modal-dialog"> 
 
     <div class="modal-body"> 
 

 
       <!-- this id =pdf could access from parent document--> 
 
       <iframe id="pdf" width="100%" scrolling="no" tabindex="0" vspace="0" class="" allowtransparency="true" aria-hidden="true" frameborder="0" hspace="0" marginheight="0" marginwidth="0" height="621" src="/static/lib/pdfjs/web/viewer.html?file=/static/app/abc.pdf"> 
 
        <!-- child #document --> 
 
       <html> 
 
        <head></head> 
 
        <body> 
 
        <div> 
 
        <!-- I have to impelemt in parent view(.js) on listen from child window document element tiggered event --> 
 
        <button id="hello-abc" data-l10n-id="error_close" style="margin-top:5px;">Close</button> 
 

 
        </div> 
 
        </body>     
 
       </html> 
 
       </iframe> 
 
       
 
     </div> 
 
    </div> 
 
    </div> 
 
    </div> 
 
</body> 
 
</html>

Répondre

0

Vous pouvez pointer le el de vue pour les iframes body et définir les événements pour ses éléments comme toute autre vue épine dorsale.

Vous pouvez avoir d'autres vues (telles qu'une vue parente) pour écouter les événements de votre vue iframe si nécessaire.

Quelque chose comme:

var TestView = Backbone.View.extend({ 
el: $('iframe').get(0).contentWindow.document.body, 
initialize: function() { 
    this.render(); 
}, 
events: { 
    'click button': 'eventHandler' 
}, 
render: function() { 
    this.$el.append($('#iframe-template').html()); 
}, 
eventHandler: function(e, rivetsView) { 
    alert('bingo!'); 
    //triger a custom event for the parent view or such if required 
} 
}); 
var test = new TestView();