From 94fa5275304c6fc3fc1ab34b8ffe2f38e5d5a7a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Norman=20Hauk=C3=A5s?= Date: Mon, 25 Jan 2016 19:39:46 +0100 Subject: [PATCH] successfully attached listener to frameset frames --- src/services/webpage.service.ts | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/services/webpage.service.ts b/src/services/webpage.service.ts index b26d5ab..4b65dab 100644 --- a/src/services/webpage.service.ts +++ b/src/services/webpage.service.ts @@ -16,7 +16,7 @@ module tagIt { // we need to remember what the currently selected word was tagStorageService: TagStorageService; savedSelection: Object; - listOfFramesWithContent: HTMLIFrameElement[] = []; + listOfFramesWithContent: HTMLFrameElement[] = []; /* @ngInject */ constructor($log: ng.ILogService, TagStorageService: TagStorageService) { @@ -29,19 +29,18 @@ module tagIt { //notify the menu. TODO refactor to use events on $rootScope instead. wireUpListener(callbackOnSelectFunc: (result: Object) => void, callbackOnDeSelectFunc: () => void) { - var that = this; - if ($('#tagit-body').find('frameset').length > 0) { - $('#tagit-body').find('frame').each((index, elem) => { - this.listOfFramesWithContent.push(elem); - }); - } else { - this.listOfFramesWithContent.push( - parent.document.getElementById('tagit-body') - ); - } + const tagitBodyIframe = parent.document.getElementById('tagit-body'); + const tagitBodyIframeDoc = tagitBodyIframe.contentDocument; + + if (tagitBodyIframeDoc.getElementsByTagName('frameset').length > 0) { + _.map(tagitBodyIframeDoc.getElementsByTagName('frame'), + (frame) => { this.listOfFramesWithContent.push(frame) }); + } else { } + _.map(this.listOfFramesWithContent, (frame: HTMLIFrameElement) => { frame.contentDocument.addEventListener('click', (evt: Event) => { + this.$log.debug('A click happened!'); var documentThatWasClicked = evt.srcElement.ownerDocument; if (!documentThatWasClicked.hasFocus()) { return true;