diff --git a/brozzler/behaviors.yaml b/brozzler/behaviors.yaml index dd2a80f..1679a8e 100644 --- a/brozzler/behaviors.yaml +++ b/brozzler/behaviors.yaml @@ -209,4 +209,4 @@ behavior_js_template: umbraBehavior.js.j2 default_parameters: actions: - - selector: button.sc-button-play, .playButton, div.soundItem, .jwlist>a, video + - selector: button.sc-button-play, .playButton, div.soundItem, .jwlist>a, audio, video diff --git a/brozzler/js-templates/extract-outlinks.js b/brozzler/js-templates/extract-outlinks.js index af37c43..f839ecf 100644 --- a/brozzler/js-templates/extract-outlinks.js +++ b/brozzler/js-templates/extract-outlinks.js @@ -1,7 +1,7 @@ // we have problems if the page has changed the definition of Set or Array // http://www.polyvore.com/ does this for example var __brzl_framesDone = new Set(); -var __brzl_popup_re = /window.open\(\s*(['"])(.*?)\1/ +var __brzl_popup_re = /window.open\(\s*(['"])(.*?)\1/; var __brzl_compileOutlinks = function(frame) { __brzl_framesDone.add(frame); var outlinks = []; @@ -10,10 +10,14 @@ var __brzl_compileOutlinks = function(frame) { outlinks = Array.prototype.slice.call( frame.document.querySelectorAll('a[href], area[href]')); popups = Array.prototype.slice.call( - frame.document.querySelectorAll('a[onclick]')); + frame.document.querySelectorAll('a[onclick], a[ondblclick]')); if (popups && popups.length > 0) { for (var p=0; p < popups.length; p++) { - m = popups[p].onclick.toString().match(__brzl_popup_re); + if (popups[p].onclick){ + m = popups[p].onclick.toString().match(__brzl_popup_re); + } else { + m = popups[p].ondblclick.toString().match(__brzl_popup_re); + } if (m) { outlinks.push(m[2]); }