f4521d83b9f6c26765970beb19bcf8ca33abca58 larrym Mon Oct 11 17:16:13 2010 -0700 add windowOpenFailedMsg; don't put 'Click to alter ...' items in the contextmenu diff --git src/hg/js/hgTracks.js src/hg/js/hgTracks.js index 6296974..7c716c2 100644 --- src/hg/js/hgTracks.js +++ src/hg/js/hgTracks.js @@ -1536,7 +1536,9 @@ } else { if(cmd == 'getDna') { - window.open("../cgi-bin/hgc?hgsid=" + getHgsid() + "&g=getDna&i=mixed&c=" + chrom + "&l=" + (chromStart - 1) + "&r=" + chromEnd); + if(window.open("../cgi-bin/hgc?hgsid=" + getHgsid() + "&g=getDna&i=mixed&c=" + chrom + "&l=" + (chromStart - 1) + "&r=" + chromEnd) == null) { + windowOpenFailedMsg(); + } } else { var newPosition = setPositionByCoordinates(chrom, chromStart, chromEnd); if(browser == "safari" || imageV2) { @@ -1608,8 +1610,9 @@ cache: false }); } else if (cmd == 'openLink') { - // XXXX This is blocked by Safari's popup blocker (without any warning message). - window.open(selectedMenuItem.href); + if(window.open(selectedMenuItem.href) == null) { + windowOpenFailedMsg(); + } } else if (cmd == 'followLink') { // XXXX This is blocked by Safari's popup blocker (without any warning message). location.assign(selectedMenuItem.href); @@ -1693,7 +1696,7 @@ var menu = []; var selectedImg = " <img src='../images/greenCheck.png' height='10' width='10' />"; var done = false; - if(selectedMenuItem) { + if(selectedMenuItem && selectedMenuItem.id != undefined) { var href = selectedMenuItem.href; var isHgc, isGene; if(href) { @@ -1755,12 +1758,9 @@ if(selectedMenuItem.title != undefined && selectedMenuItem.title.length > 0 && selectedMenuItem.href != undefined && selectedMenuItem.href.length > 0) { var str = selectedMenuItem.title; - var set = false; - if(str.indexOf("Click to alter ") == 0) - str = "Alter " + str.substring("Click to alter ".length); - if(str.indexOf(" and similar subtracks") != -1) - set = true; - //str = str.substring(0,str.length - " and similar subtracks".length); + if(str.indexOf("Click to alter ") == 0) { + ; // suppress the "Click to alter..." items + } else { if(str.indexOf("display density") != -1) str = "<img src='../images/toggle.png' /> " + str; else @@ -1768,6 +1768,7 @@ o[str] = {onclick: function(menuItemClicked, menuObject) { contextMenuHit(menuItemClicked, menuObject, "followLink"); return true; }}; any = true; } + } if(any) { menu.push($.contextMenu.separator); menu.push(o); @@ -2101,7 +2102,9 @@ var reg = new RegExp(str); a = reg.exec(response); if(a && a[1]) { - window.open(a[1]); + if(window.open(a[1]) == null) { + windowOpenFailedMsg(); + } return; } showWarning("Couldn't parse out img src"); @@ -2459,3 +2462,8 @@ } } } + +function windowOpenFailedMsg() +{ + alert("Your web browser prevented us from opening a new window.\n\nYou need to change your browser settings to allow popups from " + document.domain); +}