From a725ddae5aec0180a427e460e8e3e3dbfb3783f5 Mon Sep 17 00:00:00 2001 From: Rasmus John Pedersen Date: Tue, 21 Aug 2018 17:08:06 +0200 Subject: [PATCH] Only remove ? or # if it's part of the url --- .../src/views/common/dialogs/linkpicker.controller.js | 8 ++++++-- .../common/overlays/linkpicker/linkpicker.controller.js | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js index dee9a4409a..3856a4b862 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js @@ -43,8 +43,12 @@ angular.module("umbraco").controller("Umbraco.Dialogs.LinkPickerController", $scope.model.target.url = resp.urls[0]; }); } else if ($scope.target.url.length) { - // a url but no id/udi indicates an external link - trim the url to remove the anchor/qs - $scope.target.url = $scope.model.url.substring(0, $scope.model.url.search(/(#|\?)/)); + // a url but no id/udi indicates an external link - trim the url to remove the anchor/qs + // only do the substring if there's a # or a ? + var indexOfAnchor = $scope.model.target.url.search(/(#|\?)/); + if (indexOfAnchor > -1) { + $scope.model.target.url = $scope.model.target.url.substring(0, indexOfAnchor); + } } } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js index 208eb88e51..7bcbeee1e1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js @@ -53,7 +53,11 @@ angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController", }); } else if ($scope.model.target.url.length) { // a url but no id/udi indicates an external link - trim the url to remove the anchor/qs - $scope.model.target.url = $scope.model.target.url.substring(0, $scope.model.target.url.search(/(#|\?)/)); + // only do the substring if there's a # or a ? + var indexOfAnchor = $scope.model.target.url.search(/(#|\?)/); + if (indexOfAnchor > -1) { + $scope.model.target.url = $scope.model.target.url.substring(0, indexOfAnchor); + } } } else if (dialogOptions.anchors) { $scope.anchorValues = dialogOptions.anchors;