首页 > 代码库 > Dreamweaver 扩展开发:文档路径等信息的处理
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 truefunction 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 =http://www.mamicode.com/ 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 pathfunction 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 documentfunction 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 sitefunction 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 pathfunction 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 扩展开发:文档路径等信息的处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。