diff --git a/demo.html b/demo.html index a085e07..349ce2a 100755 --- a/demo.html +++ b/demo.html @@ -24,7 +24,7 @@

Title & URL defined

Title, text and URL defined

This share button will share a defined title, text and url set by data attributes.

- + diff --git a/dist/good-share.min.js b/dist/good-share.min.js index 0bd97ef..14d4331 100755 --- a/dist/good-share.min.js +++ b/dist/good-share.min.js @@ -1 +1 @@ -"use strict";!function(){document.querySelector(".good-share-modal");var t,e,o,a,n=window.location.href,s=document.title,r=document.querySelector("meta[property='og:url']"),c=document.querySelector("meta[property='og:title']"),i=document.querySelector("meta[property='og:description']");if(r&&c&&i)var l=r.getAttribute("content"),d=c.getAttribute("content"),u=i.getAttribute("content");var h;(h=document.createElement("div")).classList.add("good-share-modal"),h.setAttribute("role","dialog"),h.innerHTML='
',document.body.appendChild(h);!function(){var t=document.createElement("div");t.classList.add("good-share-overlay"),document.body.appendChild(t)}();var g=navigator.userAgent.match(/SamsungBrowser/i),m=function(){document.body.classList.remove("good-share-modal-open"),t.focus()};document.addEventListener("click",(function(r){r.target.classList.contains("good-share")&&(e=r.target.dataset.shareTitle||d||s,o=r.target.dataset.shareText||u||"",a=r.target.dataset.shareUrl||l||n,function(e,o,a){navigator.share&&null===g?navigator.share({title:e,text:o,url:a}).then((function(){console.log("Thanks for sharing!")})).catch(console.error):(document.body.classList.add("good-share-modal-open"),t=document.activeElement,document.querySelector(".good-share-modal-buttons > button").focus())}(e,o,a)),r.target.classList.contains("close-btn")&&m(),r.target.classList.contains("facebook-btn")&&function(t){window.open(t,"share-facebook","width=580,height=296")}("https://www.facebook.com/sharer/sharer.php?u="+a),r.target.classList.contains("twitter-btn")&&function(t){window.open(t,"share-twitter","width=550,height=235")}("https://twitter.com/intent/tweet?text="+(o?e+" / "+o+"&url="+a:e+"&url="+a)),r.target.classList.contains("email-btn")&&function(t){window.open(t,"share-email")}("mailto:?&body="+(o?o+"%0D%0A%0D%0A"+a+"&subject="+e:a+"&subject="+e))}),!1),document.addEventListener("keyup",(function(t){if(!t.defaultPrevented){var e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||m()}})),document.querySelector(".good-share-overlay").addEventListener("click",(function(t){m()}))}(); \ No newline at end of file +"use strict";!function(){document.querySelector(".good-share-modal");var t,e,o,n,a=window.location.href,s=document.title,r=document.querySelector("meta[property='og:url']"),c=document.querySelector("meta[property='og:title']"),i=document.querySelector("meta[property='og:description']");if(r&&c&&i)var d=r.getAttribute("content"),l=c.getAttribute("content"),u=i.getAttribute("content");var h;(h=document.createElement("div")).classList.add("good-share-modal"),h.setAttribute("role","dialog"),h.innerHTML='
',document.body.appendChild(h);!function(){var t=document.createElement("div");t.classList.add("good-share-overlay"),document.body.appendChild(t)}();var m=navigator.userAgent.match(/SamsungBrowser/i),g=function(){document.body.classList.remove("good-share-modal-open"),t.focus()};document.addEventListener("click",function(r){r.target.classList.contains("good-share")&&(e=r.target.dataset.shareTitle||l||s,o=r.target.dataset.shareText||u||"",n=r.target.dataset.shareUrl||d||a,null==navigator.share&&(e=encodeURIComponent(e),o=encodeURIComponent(o),n=encodeURIComponent(n)),function(e,o,n){navigator.share&&null===m?navigator.share({title:e,text:o,url:n}).then(function(){console.log("Thanks for sharing!")}).catch(console.error):(document.body.classList.add("good-share-modal-open"),t=document.activeElement,document.querySelector(".good-share-modal-buttons > button").focus())}(e,o,n)),r.target.classList.contains("close-btn")&&g(),r.target.classList.contains("facebook-btn")&&function(t){window.open(t,"share-facebook","width=580,height=296")}("https://www.facebook.com/sharer/sharer.php?u="+n),r.target.classList.contains("twitter-btn")&&function(t){window.open(t,"share-twitter","width=550,height=235")}("https://twitter.com/intent/tweet?text="+(o?e+" / "+o+"&url="+n:e+"&url="+n)),r.target.classList.contains("email-btn")&&function(t){window.open(t,"share-email")}("mailto:?&body="+(o?o+"%0D%0A%0D%0A"+n+"&subject="+e:n+"&subject="+e))},!1),document.addEventListener("keyup",function(t){if(!t.defaultPrevented){var e=t.key||t.keyCode;"Escape"!==e&&"Esc"!==e&&27!==e||g()}}),document.querySelector(".good-share-overlay").addEventListener("click",function(t){g()})}(); \ No newline at end of file diff --git a/js/good-share.js b/js/good-share.js index 5a7d8ef..084ce58 100755 --- a/js/good-share.js +++ b/js/good-share.js @@ -148,6 +148,14 @@ share_text = event.target.dataset.shareText || og_description || ''; share_url = event.target.dataset.shareUrl || og_url || current_url; + //check if fallback share + if( navigator.share == null ){ + //escape special characters + share_title = encodeURIComponent(share_title); + share_text = encodeURIComponent(share_text); + share_url = encodeURIComponent(share_url); + } + //open share window open_share_modal( share_title, share_text, share_url ); } diff --git a/package-lock.json b/package-lock.json index 42b22b0..56c9474 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3091,8 +3091,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -3113,14 +3112,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3135,20 +3132,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -3265,8 +3259,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -3278,7 +3271,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3293,7 +3285,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3301,14 +3292,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -3327,7 +3316,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -3408,8 +3396,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -3421,7 +3408,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -3507,8 +3493,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -3544,7 +3529,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3564,7 +3548,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3608,14 +3591,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, diff --git a/package.json b/package.json index 363c21d..f433837 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "good-share", "description": "Good Share is a share button library with Web Share API integration", - "version": "1.1.0", + "version": "1.1.1", "homepage": "https://chrisyee.ca/good-share/", "license": "MIT", "author": { @@ -30,6 +30,6 @@ "@babel/core": "^7.5.4" }, "browserslist": [ - "last 2 versions" + "last 2 versions" ] }