aboutsummaryrefslogtreecommitdiff
path: root/js/document
diff options
context:
space:
mode:
authorJose Antonio Marquez2012-03-06 17:02:37 -0800
committerJose Antonio Marquez2012-03-06 17:02:37 -0800
commiteebb7de4d19cddec9c763a073d8cf41d76fe70f7 (patch)
tree77c30a958c0283a6aa208b93640c6008eeb943e2 /js/document
parentf6a60f50ca9cd09713baa27f2990eda9346496fc (diff)
downloadninja-eebb7de4d19cddec9c763a073d8cf41d76fe70f7.tar.gz
Adding CDN support for URLs in linked CSS
Diffstat (limited to 'js/document')
-rwxr-xr-xjs/document/html-document.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/js/document/html-document.js b/js/document/html-document.js
index 80930af2..1c5cec91 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) {