diff options
Diffstat (limited to 'js/document/html-document.js')
-rwxr-xr-x | js/document/html-document.js | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/js/document/html-document.js b/js/document/html-document.js index 924a013d..9670e0c4 100755 --- a/js/document/html-document.js +++ b/js/document/html-document.js | |||
@@ -437,8 +437,8 @@ exports.HTMLDocument = Montage.create(TextDocument, { | |||
437 | } else if (prop.indexOf('url') !== -1) { //From CSS property | 437 | } else if (prop.indexOf('url') !== -1) { //From CSS property |
438 | //TODO: Add functionality | 438 | //TODO: Add functionality |
439 | var docRootUrl = this.application.ninja.coreIoApi.rootUrl+escape((this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]).replace(/\/\//gi, '/')); | 439 | var docRootUrl = this.application.ninja.coreIoApi.rootUrl+escape((this.application.ninja.documentController.documentHackReference.root.split(this.application.ninja.coreIoApi.cloudData.root)[1]).replace(/\/\//gi, '/')); |
440 | prop = prop.replace(/[^()\\""\\'']+/g, test); | 440 | prop = prop.replace(/[^()\\""\\'']+/g, cssUrlToNinjaUrl); |
441 | function test (s) { | 441 | function cssUrlToNinjaUrl (s) { |
442 | if (s !== 'url') { | 442 | if (s !== 'url') { |
443 | s = docRootUrl + s; | 443 | s = docRootUrl + s; |
444 | } | 444 | } |
@@ -570,8 +570,22 @@ exports.HTMLDocument = Montage.create(TextDocument, { | |||
570 | } | 570 | } |
571 | // | 571 | // |
572 | fileCouldDirUrl = this._document.styleSheets[i].href.split(this._document.styleSheets[i].href.split('/')[this._document.styleSheets[i].href.split('/').length-1])[0]; | 572 | fileCouldDirUrl = this._document.styleSheets[i].href.split(this._document.styleSheets[i].href.split('/')[this._document.styleSheets[i].href.split('/').length-1])[0]; |
573 | prefixUrl = 'url('+fileCouldDirUrl; //This should be re-written with better RegEx | 573 | |
574 | tag.innerHTML = cssData.content.replace(/url\(/gi, prefixUrl); | 574 | tag.innerHTML = cssData.content.replace(/url\(()(.+?)\1\)/g, detectUrl); |
575 | |||
576 | function detectUrl (prop) { | ||
577 | return prop.replace(/[^()\\""\\'']+/g, prefixUrl);; | ||
578 | } | ||
579 | |||
580 | function prefixUrl (url) { | ||
581 | if (url !== 'url') { | ||
582 | if (!url.match(/(\b(?:(?:https?|ftp|file|[A-Za-z]+):\/\/|www\.|ftp\.)(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.]*\)|[A-Z0-9+&@#\/%=~_|$]))/gi)) { | ||
583 | url = fileCouldDirUrl+url; | ||
584 | } | ||
585 | } | ||
586 | return url; | ||
587 | } | ||
588 | |||
575 | //Looping through DOM to insert style tag at location of link element | 589 | //Looping through DOM to insert style tag at location of link element |
576 | query = this._templateDocument.html.querySelectorAll(['link']); | 590 | query = this._templateDocument.html.querySelectorAll(['link']); |
577 | for (var j in query) { | 591 | for (var j in query) { |