2015-10-15 7 views
0

Как я могу реализовать функцию события, которая инициирует событие click из элемента документа .Действие элементов документа iframe trigger event event

Я должен принять меры document.getElementById("iframe-id").contentWindow.window.document.getElementById("hello-abc").

Возможно ли реализовать использование 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>

ответ

0

Вы можете указать el вашего зрения к body и фреймов определить события для его элементы так же, как и любой другой точки зрения позвоночника.

При необходимости вы можете просматривать другие виды (например, родительский вид) при прослушивании событий из вашего представления iframe.

Что-то вроде:

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();