📄 overview-summary-tinymce_url.class.js.html
字号:
}
targetURL.protocol = null;
targetURL.host = null;
targetURL.port = null;
targetURL.path = outPath == <span class="literal">""</span> && forceSlash ? <span class="literal">"/"</span> : outPath;
<span class="comment">// Remove document prefix from local anchors</span>
var fileName = baseURL.path;
var pos;
<span class="reserved">if</span> ((pos = fileName.lastIndexOf(<span class="literal">'/'</span>)) != -1)
fileName = fileName.substring(pos + 1);
<span class="comment">// Is local anchor</span>
<span class="reserved">if</span> (fileName == targetURL.path && targetURL.anchor != <span class="literal">""</span>)
targetURL.path = <span class="literal">""</span>;
<span class="comment">// If empty and not local anchor force slash</span>
<span class="reserved">if</span> (targetURL.path == <span class="literal">""</span> && !targetURL.anchor)
targetURL.path = <span class="literal">"/"</span>;
<span class="reserved">return</span> <span class="reserved">this</span>.serializeURL(targetURL);
};
<span class="comment">/**
* Converts an relative path to absolute path.
*
* <span class="attrib">@param</span> {string} base_url URL to make as a base path, URLs will be converted absolute from this point.
* <span class="attrib">@param</span> {string} relative_url URL to convert into a absolute URL.
* <span class="attrib">@return</span> Absolute URL based in input.
* <span class="attrib">@type</span> string
*/</span>
TinyMCE_Engine.<span class="reserved">prototype</span>.convertRelativeToAbsoluteURL = <span class="reserved">function</span>(base_url, relative_url) {
var baseURL = <span class="reserved">this</span>.parseURL(base_url);
var relURL = <span class="reserved">this</span>.parseURL(relative_url);
<span class="reserved">if</span> (relative_url == <span class="literal">""</span> || relative_url.charAt(0) == <span class="literal">'/'</span> || relative_url.indexOf(<span class="literal">'://'</span>) != -1 || relative_url.indexOf(<span class="literal">'mailto:'</span>) != -1 || relative_url.indexOf(<span class="literal">'javascript:'</span>) != -1)
<span class="reserved">return</span> relative_url;
<span class="comment">// Split parts</span>
baseURLParts = baseURL[<span class="literal">'path'</span>].split(<span class="literal">'/'</span>);
relURLParts = relURL[<span class="literal">'path'</span>].split(<span class="literal">'/'</span>);
<span class="comment">// Remove empty chunks</span>
var newBaseURLParts = new Array();
<span class="reserved">for</span> (var i=baseURLParts.length-1; i>=0; i--) {
<span class="reserved">if</span> (baseURLParts[i].length == 0)
continue;
newBaseURLParts[newBaseURLParts.length] = baseURLParts[i];
}
baseURLParts = newBaseURLParts.reverse();
<span class="comment">// Merge relURLParts chunks</span>
var newRelURLParts = new Array();
var numBack = 0;
<span class="reserved">for</span> (var i=relURLParts.length-1; i>=0; i--) {
<span class="reserved">if</span> (relURLParts[i].length == 0 || relURLParts[i] == <span class="literal">"."</span>)
continue;
<span class="reserved">if</span> (relURLParts[i] == <span class="literal">'..'</span>) {
numBack++;
continue;
}
<span class="reserved">if</span> (numBack > 0) {
numBack--;
continue;
}
newRelURLParts[newRelURLParts.length] = relURLParts[i];
}
relURLParts = newRelURLParts.reverse();
<span class="comment">// Remove end from absolute path</span>
var len = baseURLParts.length-numBack;
var absPath = (len <= 0 ? <span class="literal">""</span> : <span class="literal">"/"</span>) + baseURLParts.slice(0, len).join(<span class="literal">'/'</span>) + <span class="literal">"/"</span> + relURLParts.join(<span class="literal">'/'</span>);
var start = <span class="literal">""</span>, end = <span class="literal">""</span>;
<span class="comment">// Build output URL</span>
relURL.protocol = baseURL.protocol;
relURL.host = baseURL.host;
relURL.port = baseURL.port;
<span class="comment">// Re-add trailing slash if it's removed</span>
<span class="reserved">if</span> (relURL.path.charAt(relURL.path.length-1) == <span class="literal">"/"</span>)
absPath += <span class="literal">"/"</span>;
relURL.path = absPath;
<span class="reserved">return</span> <span class="reserved">this</span>.serializeURL(relURL);
};
<span class="comment">/**
* Converts the specified URL based in TinyMCE configuration settings.
*
* <span class="attrib">@param</span> {string} url URL to convert based on config.
* <span class="attrib">@param</span> {HTMLElement} node HTML element that holds the URL.
* <span class="attrib">@param</span> {boolean} on_save Is this convertion the final output URL.
* <span class="attrib">@return</span> Converted URL string.
* <span class="attrib">@type</span> string
*/</span>
TinyMCE_Engine.<span class="reserved">prototype</span>.convertURL = <span class="reserved">function</span>(url, node, on_save) {
var prot = document.location.protocol;
var host = document.location.hostname;
var port = document.location.port;
<span class="comment">// Pass through file protocol</span>
<span class="reserved">if</span> (prot == <span class="literal">"file:"</span>)
<span class="reserved">return</span> url;
<span class="comment">// Something is wrong, remove weirdness</span>
url = tinyMCE.regexpReplace(url, <span class="literal">'(http|https):///'</span>, <span class="literal">'/'</span>);
<span class="comment">// Mailto link or anchor (Pass through)</span>
<span class="reserved">if</span> (url.indexOf(<span class="literal">'mailto:'</span>) != -1 || url.indexOf(<span class="literal">'javascript:'</span>) != -1 || tinyMCE.regexpReplace(url,<span class="literal">'[ \t\r\n\+]|%20'</span>,<span class="literal">''</span>).charAt(0) == <span class="literal">"#"</span>)
<span class="reserved">return</span> url;
<span class="comment">// Fix relative/Mozilla</span>
<span class="reserved">if</span> (!tinyMCE.isMSIE && !on_save && url.indexOf(<span class="literal">"://"</span>) == -1 && url.charAt(0) != <span class="literal">'/'</span>)
<span class="reserved">return</span> tinyMCE.settings[<span class="literal">'base_href'</span>] + url;
<span class="comment">// Handle relative URLs</span>
<span class="reserved">if</span> (on_save && tinyMCE.getParam(<span class="literal">'relative_urls'</span>)) {
var curl = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings[<span class="literal">'base_href'</span>], url);
<span class="reserved">if</span> (curl.charAt(0) == <span class="literal">'/'</span>)
curl = tinyMCE.settings[<span class="literal">'document_base_prefix'</span>] + curl;
var urlParts = tinyMCE.parseURL(curl);
var tmpUrlParts = tinyMCE.parseURL(tinyMCE.settings[<span class="literal">'document_base_url'</span>]);
<span class="comment">// Force relative</span>
<span class="reserved">if</span> (urlParts[<span class="literal">'host'</span>] == tmpUrlParts[<span class="literal">'host'</span>] && (urlParts[<span class="literal">'port'</span>] == tmpUrlParts[<span class="literal">'port'</span>]))
<span class="reserved">return</span> tinyMCE.convertAbsoluteURLToRelativeURL(tinyMCE.settings[<span class="literal">'document_base_url'</span>], curl);
}
<span class="comment">// Handle absolute URLs</span>
<span class="reserved">if</span> (!tinyMCE.getParam(<span class="literal">'relative_urls'</span>)) {
var urlParts = tinyMCE.parseURL(url);
var baseUrlParts = tinyMCE.parseURL(tinyMCE.settings[<span class="literal">'base_href'</span>]);
<span class="comment">// Force absolute URLs from relative URLs</span>
url = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings[<span class="literal">'base_href'</span>], url);
<span class="comment">// If anchor and path is the same page</span>
<span class="reserved">if</span> (urlParts[<span class="literal">'anchor'</span>] && urlParts[<span class="literal">'path'</span>] == baseUrlParts[<span class="literal">'path'</span>])
<span class="reserved">return</span> <span class="literal">"#"</span> + urlParts[<span class="literal">'anchor'</span>];
}
<span class="comment">// Remove current domain</span>
<span class="reserved">if</span> (tinyMCE.getParam(<span class="literal">'remove_script_host'</span>)) {
var start = <span class="literal">""</span>, portPart = <span class="literal">""</span>;
<span class="reserved">if</span> (port != <span class="literal">""</span>)
portPart = <span class="literal">":"</span> + port;
start = prot + <span class="literal">"//"</span> + host + portPart + <span class="literal">"/"</span>;
<span class="reserved">if</span> (url.indexOf(start) == 0)
url = url.substring(start.length-1);
}
<span class="reserved">return</span> url;
};
<span class="comment">/**
* Converts all img and a element URLs to absolute URLs. This will use the mce_src or mce_href attribute values
* if they are provided. This function is used when the editor is initialized.
*
* <span class="attrib">@param</span> {HTMLElement} body HTML element to convert all URLs in.
*/</span>
TinyMCE_Engine.<span class="reserved">prototype</span>.convertAllRelativeURLs = <span class="reserved">function</span>(body) {
<span class="comment">// Convert all image URL:s to absolute URL</span>
var elms = body.getElementsByTagName(<span class="literal">"img"</span>);
<span class="reserved">for</span> (var i=0; i<elms.length; i++) {
var src = tinyMCE.getAttrib(elms[i], <span class="literal">'src'</span>);
var msrc = tinyMCE.getAttrib(elms[i], <span class="literal">'mce_src'</span>);
<span class="reserved">if</span> (msrc != <span class="literal">""</span>)
src = msrc;
<span class="reserved">if</span> (src != <span class="literal">""</span>) {
src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings[<span class="literal">'base_href'</span>], src);
elms[i].setAttribute(<span class="literal">"src"</span>, src);
}
}
<span class="comment">// Convert all link URL:s to absolute URL</span>
var elms = body.getElementsByTagName(<span class="literal">"a"</span>);
<span class="reserved">for</span> (var i=0; i<elms.length; i++) {
var href = tinyMCE.getAttrib(elms[i], <span class="literal">'href'</span>);
var mhref = tinyMCE.getAttrib(elms[i], <span class="literal">'mce_href'</span>);
<span class="reserved">if</span> (mhref != <span class="literal">""</span>)
href = mhref;
<span class="reserved">if</span> (href && href != <span class="literal">""</span>) {
href = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings[<span class="literal">'base_href'</span>], href);
elms[i].setAttribute(<span class="literal">"href"</span>, href);
}
}
};
</pre>
<hr>
<!-- ========== START OF NAVBAR ========== -->
<a name="navbar_top"><!-- --></a>
<table border="0" width="100%" cellpadding="1" cellspacing="0">
<tr>
<td colspan=2 bgcolor="#EEEEFF" class="NavBarCell1">
<a name="navbar_top_firstrow"><!-- --></a>
<table border="0" cellpadding="0" cellspacing="3">
<tr align="center" valign="top">
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-summary.html"><font class="NavBarFont1"><b>Overview</b></font></a> </td>
<td bgcolor="#FFFFFF" class="NavBarCell1Rev"> <font class="NavBarFont1Rev"><b>File</b></font> </td>
<td bgcolor="#FFFFFF" class="NavBarCell1"> <font class="NavBarFont1">Class</font> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="overview-tree.html"><font class="NavBarFont1"><b>Tree</b></font></a> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="index-all.html"--><font class="NavBarFont1"><b>Index</b></font></a> </td>
<td bgcolor="#EEEEFF" class="NavBarCell1"> <a href="help-doc.html"><font class="NavBarFont1"><b>Help</b></font></a> </td>
</tr>
</table>
</td>
<td bgcolor="#EEEEFF" align="right" valign="top"><em>
<b></b></em>
</td>
</tr>
<tr>
<td bgcolor="white" class="NavBarCell2"><font size="-2">
PREV
NEXT</font></td>
<td bgcolor="white" class="NavBarCell2"><font size="-2">
<a href="index.html" target="_top"><b>FRAMES</b></a>
<a href="overview-summary.html" target="_top"><b>NO FRAMES</b></a>
<script>
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
}
//-->
</script>
<noscript>
<a href="allclasses-noframe.html" target=""><b>All Classes</b></a>
</noscript>
</font></td>
</tr>
</table>
<!-- =========== END OF NAVBAR =========== -->
<hr>
<font size="-1">
</font>
<div class="jsdoc_ctime">Documentation generated by <a href="http://jsdoc.sourceforge.net/" target="_parent">JSDoc</a> on Mon Feb 13 16:28:04 2006</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -