Dreamweaver 扩展开发:文档路径等信息的处理
//browseFile(fieldToStoreURL){
//getFullPath(filePathURL){
//getSimpleFileName() {
//fixUpPath(docURL,siteURL,savedPath)
//fileIsCurrentlyOpen(absoluteFileURL);
//Invokes dialog to allow user to select filename. Puts value in text input.
// The optional flag stripParameters will remove anything after a question
// mark if it is set to true
function browseFile(fieldToStoreURL, stripParameters) {
var fileName = "";
fileName = browseForFileURL(); //returns a local filename
if (stripParameters) {
var index = fileName.indexOf("?");
if (index != -1) {
fileName = fileName.substring(0,index);
}
}
if (fileName) fieldToStoreURL.value = fileName;
}
//function: getFullPath
//description: converts relative paths into full paths that start with
//file:///
//Why this is important: A user is prompted for a location to save
//a file. Dreamweaver generates a path that is relative to the currently
//opened document. If a developer tries to use this URL in DWfile, it will
//not work because dreamweaver assumes the path to be relative to the
//extension file. However, full paths will work
//Note that this function sometimes returns a full path that is indirect:
//For instance: file:///C|/MyWebSite/Hobbies/Cooking/.../Hobbies/Images/cake.gif
//However, the user never sees this file path.
//
//Arguments:
//filePathURL - doc-relative,site-relative, or absolute file path
function getFullPath(filePathURL){
var retVal = (filePathURL)?filePathURL:'';
var docURL;
var dotDotSlash;
var inMiddle;
if (retVal != ''){
//if the document path is relative, for example,My Docs/My Schedule.htm
//create an absolute path.
if ( filePathURL.indexOf("file://")!=0 ){
//if doc relative...
if ( filePathURL.charAt(0)!="/" ){
docURL = dreamweaver.getDocumentDOM('document').URL;
dotDotSlash = filePathURL.indexOf('../');
while (dotDotSlash == 0){
docURL = docURL.substring(0,docURL.lastIndexOf("/"));
filePathURL = filePathURL.substring(3);
dotDotSlash = filePathURL.indexOf('../');
}
retVal = docURL.substring(0,docURL.lastIndexOf("/")+1) + filePathURL;
//else path is site relative...
} else {
retVal = dreamweaver.getSiteRoot() + filePathURL.substring(1);
}
}
}
return retVal;
}
//Returns the simple file name for the current document
function getSimpleFileName() {
var filePath = dreamweaver.getDocumentPath("document"); //get full path of file
var lastSlash = filePath.lastIndexOf("/");
if (lastSlash != -1) filePath = filePath.substring(lastSlash+1);
return filePath;
}
// fixUpPath()
// Given the location of the current document, the site root,
// and the path to a file or folder (expressed as a file:// URL),
// returns one of the following:
// the file:// URL passed in, if the document has not been saved
// the file:// URL passed in, if the document is not in the current site
// a document-relative path, if the document has been saved in the current site
function fixUpPath(docURL,siteURL,savedPath){
var retVal = "";
if (docURL == "" || (docURL != "" && savedPath.indexOf(dw.getSiteRoot()) == -1)){
retVal = savedPath;
}else{
docURL = docURL.substring(0,docURL.lastIndexOf('/')+1);
var endStr = (docURL.length > savedPath.length)?savedPath.length:docURL.length;
var commonStr = "";
for (var i=0; i < endStr; i++){
if (docURL.charAt(i) == savedPath.charAt(i)){
commonStr += docURL.charAt(i);
}else{
break;
}
}
var whatsLeft = docURL.substring(commonStr.length);
var slashPos = whatsLeft.indexOf('/');
var slashCount = 0;
var dotDotSlash = "";
while (slashPos != -1){
slashCount++;
slashPos = whatsLeft.indexOf('/',slashPos+1);
}
for (var j=1; j <= slashCount; j++){
dotDotSlash += '../';
}
retVal = dotDotSlash + savedPath.substring(commonStr.length);
}
return retVal;
}
// function: fileIsCurrentlyOpen
// description: given a file path, determines if the file is currently open
// argument: absoluteFilePath -- an absolute file path
function fileIsCurrentlyOpen(absoluteFilePath) {
var fileObj = dw.getDocumentDOM(absoluteFilePath);
var openFilesArr = dw.getDocumentList();
var fileIsOpen = false, nOpenFiles,i;
// openFilesArr is an array of currently open document objects
if (openFilesArr.length && openFilesArr.length > 0) {
nOpenFiles = openFilesArr.length;
for (i=0;i<nOpenFiles;i++) {
if (fileObj == openFilesArr[i]) {
fileIsOpen = true;
break;
}
}
}
return fileIsOpen;
}
原址:http://www.delphipraxis.net/332540-post7.html
Dreamweaver 扩展开发:文档路径等信息的处理的更多相关文章
- 如何用代码读取Office Online Server2016的文档的备注信息
前言 在一个项目上客户要求读取office online server 2016的对文档的备注信息,如下图: 以前思路老纠结在OOS这个在线上,总有以为这个信息存储在某个列表中,其实错了,这个备注信息 ...
- Java读取“桌面”、“我的文档”路径的方法
读取“桌面”的方法: javax.swing.filechooser.FileSystemView fsv = javax.swing.filechooser.FileSystemView.getFi ...
- 笔记:XML-解析文档-XPath 定位信息
如果需要定位某个XML文档中的一段特定信息,那么通过遍历DOM 树的众多节点来进行行查找显得有些麻烦,XPath语言使得访问树节点变得很容易,例如,下面的XML文档结构: <?xml versi ...
- web开发--文档下载
GOOGLE在线文档下载地址分享(GOOGLE的文档地址暂不能用了,会放在其它位置..) GOOGLE的在线文档功能好象挂掉了...等找个其它存放的位置把这些文档再上传上去... 存在GOOGLE里面 ...
- 进阶开发——文档,缓存,ip限速
一.文档自动化管理 1.django rest framework提供了一个接口: 可以将代码中注释转换为文档中内容(list,create等),以及help_text等等,且会生成JavaScrip ...
- [extjs] extjs 5.1 API 开发 文档
官方博客发布了这个新版本说明,英文文章请戳下面 http://www.sencha.com/blog/announcing-sencha-ext-js-5.1/ 翻译版本请戳下面: http://ex ...
- 1.selenium实战之从txt文档读取配置信息并执行登录
前置条件: 1.本机已搭建ECShop3.0网站 2.在脚本目录创建了user.txt文本如下: 目的:实现从txt中读取配置文件信息,本实战中,包含url地址.用户名.密码,然后进行ESChop的登 ...
- Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter
The C code in your library must interact with the Dreamweaver JavaScript interpreter at the followin ...
- Dreamweaver 扩展开发: Calling a C++ function from JavaScript
After you understand how C-level extensibility works in Dreamweaver and its dependency on certain da ...
随机推荐
- mobx @computed的解读
写在前面:我一开始看不懂官网的@computed的作用,因为即使我把@computed去掉,依然能正确的report,然后我百度谷歌都找不到答案,下面都是我自己的理解,如果是有问题的,不对的,请务必留 ...
- 操作系统篇-调用门与特权级(CPL、DPL和RPL)
|| 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.前言 在前两篇文章(<操作系统篇-浅谈实模式与保护模式>和<操作系统篇-分段机制与GDT|LDT>)中,我们提到 ...
- 继电器是如何成为CPU的(1)
继电器是如何成为CPU的(1) ——<穿越计算机的迷雾>整理和总结 究竟是如何设计的电路,具有计算和控制的智力? 这一点也不高深.本系列文章从初中学的最简单的电路图说起,看看能不能从最初的 ...
- scanf()中清除输入缓冲区的几种方法归纳
应用场景:我们使用多个scanf()的时候,如果输入缓冲区还有数据的话,那么scanf()就不会询问用户输入,而是直接就将输入缓冲区的内容拿出来用了,这就导致了前面的错误影响到后面的内容,为了隔离这种 ...
- PC分配盘符的时候发现==》RPC盘符不可用
服务器汇总:http://www.cnblogs.com/dunitian/p/4822808.html#iis 服务器异常: http://www.cnblogs.com/dunitian/p/45 ...
- logstash file输入,无输出原因与解决办法
1.现象 很多同学在用logstash input 为file的时候,经常会出现如下问题:配置文件无误,logstash有时一直停留在等待输入的界面 2.解释 logstash作为日志分析的管道,在实 ...
- javascript中的操作符详解1
好久没有写点什么了,根据博主的技术,仍然写一点javascript新手入门文章,接下来我们一起来探讨javascript的操作符. 一.前言 javascript中有许多操作符,但是许多初学者并不理解 ...
- ASP.NET WebApi OWIN 实现 OAuth 2.0
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用. OAuth 允许用户提供一个令牌, ...
- 基于AOP的MVC拦截异常让代码更优美
与asp.net 打交道很多年,如今天微软的优秀框架越来越多,其中微软在基于mvc的思想架构,也推出了自己的一套asp.net mvc 框架,如果你亲身体验过它,会情不自禁的说‘漂亮’.回过头来,‘漂 ...
- python基础
内容概要: 一.python2 or python3 目前大多使用python2.7,随着时间的推移,python3将会成为python爱好者的主流. python2和3区别: 1.PRINT IS ...