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

时间: 2024-10-11 05:13:09

Dreamweaver 扩展开发:文档路径等信息的处理的相关文章

如何用代码读取Office Online Server2016的文档的备注信息

前言 在一个项目上客户要求读取office online server 2016的对文档的备注信息,如下图: 以前思路老纠结在OOS这个在线上,总有以为这个信息存储在某个列表中,其实错了,这个备注信息其实就是word文档的备注信息,微软采用openxml开发的OOS,因此我也采用openxml读取备注信息的思路进行尝试,结果发现原来是可以的,成功效果图如下: 注意: OpenXml格式只有office2007以及以上版本才支持的格式,如果office97-2003格式的文档是二进制格式的文档,o

Java读取“桌面”、“我的文档”路径的方法

读取“桌面”的方法: javax.swing.filechooser.FileSystemView fsv = javax.swing.filechooser.FileSystemView.getFileSystemView(); fsv.getHomeDirectory();     //这便是读取桌面路径的方法了 但我需要读取“我的文档”的路径,又查看了一下jdk文档,发现有一个 getDefaultDirectory()   //返回文件选择器的用户默认起始目录. 经过观察发现,这个文法刚

笔记:XML-解析文档-XPath 定位信息

如果需要定位某个XML文档中的一段特定信息,那么通过遍历DOM 树的众多节点来进行行查找显得有些麻烦,XPath语言使得访问树节点变得很容易,例如,下面的XML文档结构: <?xml version="1.0" encoding="utf-8" ?> <root> ????????<title> ????????????????<font enabled="false"> ?????????????

UI 基础----Xcode 文档路径,模拟器路径

Xcode文档安装路径 /Applications/Xcode.app/Contents/Developer/Documentation/DocSets Xcode模拟器安装路径 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs 著作权声明:本文为作者原创,欢迎转载分享.请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!

ios中的文档路径

iOS文档的路径,特别是要做持久化存储时,应该要了解清楚. 首先app自身文档处于沙盒之中,有3个 我重点讲他们的路径:     //文件管理     NSFileManager *fileManager=[NSFileManager defaultManager];     //Documents的路径     NSURL *documentURL=[[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomain

[extjs] extjs 5.1 API 开发 文档

官方博客发布了这个新版本说明,英文文章请戳下面 http://www.sencha.com/blog/announcing-sencha-ext-js-5.1/ 翻译版本请戳下面: http://extjs.org.cn/node/738 新版本下载地址: 官方下载地址: http://www.sencha.com/products/extjs/download/ext-js-5.1.0/3301 http://cdn.sencha.io/ext/gpl/ext-5.1.0-gpl.zip ex

Dreamweaver 扩展开发: Calling a C++ function from JavaScript

After you understand how C-level extensibility works in Dreamweaver and its dependency on certain data types and functions, it’s useful to know how to build a library and call a function. The following example requires the following five files, locat

Dreamweaver 扩展开发:C-level extensibility and the JavaScript interpreter

The C code in your library must interact with the Dreamweaver JavaScript interpreter at the following different times: At startup, to register the library’s functions When the function is called, to parse the arguments that JavaScript is passing to C

ExtAspNet下通过文档路径实现文档的下载

<ext:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" EnableAjax="false">//<span style="font-family: Arial, Helvetica, sans-serif;">EnableAjax="false"