- Patch #1174686 by ksenzee: overlay parent improperly opens child overlay on specifi...
authorDries Buytaert
Fri, 29 Jul 2011 18:54:27 +0000 (14:54 -0400)
committerDries Buytaert
Fri, 29 Jul 2011 18:54:27 +0000 (14:54 -0400)
modules/overlay/overlay-parent.js

index 8f11df6..8010d01 100644 (file)
@@ -346,6 +346,10 @@ Drupal.overlay.setFocusBefore = function ($element, document) {
  *   TRUE if the URL represents an administrative link, FALSE otherwise.
  */
 Drupal.overlay.isAdminLink = function (url) {
+  if (Drupal.overlay.isExternalLink(url)) {
+    return false;
+  }
+
   var path = this.getPath(url);
 
   // Turn the list of administrative paths into a regular expression.
@@ -363,6 +367,20 @@ Drupal.overlay.isAdminLink = function (url) {
 };
 
 /**
+ * Determine whether a link is external to the site.
+ *
+ * @param url
+ *   The url to be tested.
+ *
+ * @return boolean
+ *   TRUE if the URL is external to the site, FALSE otherwise.
+ */
+Drupal.overlay.isExternalLink = function (url) {
+  var re = RegExp('^((f|ht)tps?:)?//(?!' + window.location.host + ')');
+  return re.test(url);
+};
+
+/**
  * Event handler: resizes overlay according to the size of the parent window.
  *
  * @param event