像这样的文章很多,随便找了一个你看看
获取文件目录路径的JavaScript代码
很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如或样式或脚本的目录路径。我们一般都这样做:
假设外部js文件的文件名为:testjs,则在testjs中都这样写:
var js=documentscripts;
var jsPath;
for(var i=0;i<jslength;i++){
if(js[i]srcindexOf("testjs")>-1){
jsPath=js[i]srcsubstring(0,js[i]srclastIndexOf("/")+1);
}
}
alert(jsPath);
或者为了提高效率,这样写
var js=documentscripts;
var jsPath;
for(var i=jslength;i>0;i--){
if(js[i-1]srcindexOf("testjs")>-1){
jsPath=js[i-1]srcsubstring(0,js[i-1]srclastIndexOf("/")+1);
}
}
alert(jsPath);
这种思路很清晰,根据文件名获取引用的文件的src属性并进行判断截取即可。
但这种办法有以下两个缺点:
1、需要遍历页面的js文件,有时可能效率会比较低。
2、如果页面中出现目录不同的重名的js文件则可能判断错误。
其实我们可以有更简单的办法来准确获取路径,这是在一次js测试突然发现并幡然醒悟的。
var js=documentscripts;
js=js[jslength-1]srcsubstring(0,js[jslength-1]srclastIndexOf("/")+1);
alert(js);
直接使用jslength?这会正确吗?
其实仔细想想,由于判断路径的js代码一般都直接放在js文件中而不是函数中,所以当加载该js文件时会立即执行其中的语句,而执行此语句时所获取到的js文件数目正好是jslength-1,因为页面后面的js文件还没有加载,所以该处的js文件获取的数目并不是页面所有的js文件的数目。这样一来,获取路径就无需再遍历了,而且文件判断也无需文件名,判断更加准确(jslength-1永远都是其文件本身)。
获取windows系统临时目录
<script>
var fso = new ActiveXObject("ScriptingFileSystemObject");
var f = fsoGetSpecialFolder(2);
alert(f);
</script>
一、JS高手呢,获取历史网址
你的问题涉及到 Same Origin Policy(同源策略),这是一个关系到隐私和安全性的问题。任何浏览器都不会给你机会让你访问 异域 历史网址。
但是,如果这三个页面在同一域名下,你可以使用 Javascript 的 documentcookie 来记录每次访问的网址。
我写的例子需要4个文件,url_historyjs,1,2,3(三个 文件内容相同),代码写在空间(hibaidu/keneks/item/50699e21f9300d0c72863e4d)
复制粘贴,将 url_historyjs 和其它三个 文件放在一起,访问任何一个页面,点击任何链接,上面会自动显示曾经访问过的页面。
历史网址以 array 形式保存在 url_history 变量中,所以 url_history[0] 为上一个,url_history[1] 为上上一个,以此类推。
二、js如何获取前两页的url
<script> var backurl=documentreferrer; alert(backurl);</script>;但是有的浏览器不支持的,如果是同个域名下通过此方式跳转的,那么我们可以通过访问windowwopener对象去获取丢失的referrer信息。
代码如下:<script type=text/javascript> var referrer = documentreferrer; if (!referrer) { try { if (windowopener) { // IE下如果跨域则抛出权限异常 // Safari和Chrome下windowopenerlocation没有任何属性 referrer = windowopenerlocationhref; } } catch (e) {} }</script>;你的q号,我一会远程助你。
三、如何使用js获取修改URL使用js对当前的URL进行 *** 作,可以使用内置对象windowlocation;windowlocation有以下属性:windowlocationhref:取得当前地址栏中的完整URL,可以通过赋值改变当前地址栏中的URL;windowlocationsearch 取得当前URL的参数部分,即“?”后面的部分(包括问号),可以通过赋值改变URL的参数部分;windowlocationhash:取得当前URL中包含的锚记,即“#”后面的部分(包括#),可以通过赋值改变URL的锚记部分;windowlocationhost:取得当前URL中的主机信息,包括端口号,可以通过赋值改变主机信息;windowlocationhostname:取得当前URL中的域名部分,不包括端口号,可以通过赋值改变域名;windowlocationport:取得当前URL中的端口号,可以通过赋值改变端口号;windowlocationpathname:取得当前URL中的路径信息,即域名与参数之间的部分,可以通过赋值改变当前URL的路径;windowlocationprotocol:取得当前URL的协议部分,比如:,:等,可以通过赋值改变URL的协议部分;windowlocation有一下方法:windowlocationreplace(url):用传入的URL字符串替代当前的URL,该方法会将历史记录中的URL一并替换掉,也就是说,这个方法会覆盖之前的历史记录;windowlocationreload():重新加载当前URL,相当于刷新;windowlocationassign(url):加载传入的URL,该方法不会覆盖之前的历史记录;。
四、JS获取几种URL地址的方法下面为使用JS获取MAC地址、IP地址及主机名的方法:复制代码代码如下:<meta -equiv="Content-Type" content="text/; charset=gbk"><body> 。
五、js中如何获取前一个页面的url获取的方法如下:
1、设置或获取整个 URL 为字符串: windowlocationhref
2、设置或获取与 URL 关联的端口号码: windowlocationport
3、设置或获取 URL 的协议部分 windowlocationprotocol
4、设置或获取 href 属性中跟在问号后面的部分 windowlocationsearch
5、获取变量的值(截取等号后面的部分)
6、设置或获取 URL 的协议部分: windowlocationprotocol
7、设置或获取 href 属性中在井号“#”后面的分段: windowlocationhash
8、设置或获取 location 或 URL 的 hostname 和 port 号码: windowlocationhost
六、如何使用js获取修改URL使用js对当前的URL进行 *** 作,可以使用内置对象windowlocation;
windowlocation有以下属性:
windowlocationhref:取得当前地址栏中的完整URL,可以通过赋值改变当前地址栏中的URL;
windowlocationsearch 取得当前URL的参数部分,即“?”后面的部分(包括问号),可以通过赋值改变URL的参数部分;
windowlocationhash:取得当前URL中包含的锚记,即“#”后面的部分(包括#),可以通过赋值改变URL的锚记部分;
windowlocationhost:取得当前URL中的主机信息,包括端口号,可以通过赋值改变主机信息;
windowlocationhostname:取得当前URL中的域名部分,不包括端口号,可以通过赋值改变域名;
windowlocationport:取得当前URL中的端口号,可以通过赋值改变端口号;
windowlocationpathname:取得当前URL中的路径信息,即域名与参数之间的部分,可以通过赋值改变当前URL的路径;
windowlocationprotocol:取得当前URL的协议部分,比如:,:等,可以通过赋值改变URL的协议部分;
windowlocation有一下方法:
windowlocationreplace(url):用传入的URL字符串替代当前的URL,该方法会将历史记录中的URL一并替换掉,也就是说,这个方法会覆盖之前的历史记录;
windowlocationreload():重新加载当前URL,相当于刷新;
windowlocationassign(url):加载传入的URL,该方法不会覆盖之前的历史记录;
file是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交的也是file路径所指向的文件本身。
这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以随意获取你电脑上的文件了,这是非常危险的
方法1:在下载链接上右键,选择“下载链接文件为”,然后在出现的对话框里选择要存储的位置。
方法2:在safari的“偏好预置”->“通用”->“将下载的文件存储到”里更改默认存储路径。
seajs加载某个js文件,可能在config设置了文件名和路径,怎么查看这个js代码?比如:想查看
>
设置或获取对象指定的文件名或路径。\x0d\\x0d\alert(windowlocationpathname)\x0d\\x0d\\x0d\设置或获取整个URL为字符串。\x0d\\x0d\\x0d\alert(windowlocationhref);\x0d\\x0d\设置或获取与URL关联的端口号码。\x0d\\x0d\alert(windowlocationport)\x0d\\x0d\\x0d\设置或获取URL的协议部分。\x0d\\x0d\alert(windowlocationprotocol)\x0d\\x0d\\x0d\设置或获取href属性中在井号“#”后面的分段。\x0d\\x0d\alert(windowlocationhash)\x0d\\x0d\\x0d\设置或获取location或URL的hostname和port号码。\x0d\\x0d\alert(windowlocationhost)\x0d\\x0d\\x0d\设置或获取href属性中跟在问号后面的部分。\x0d\\x0d\alert(windowlocationsearch)\x0d\
LABjs 的核心是 LAB(Loading and Blocking):Loading 指异步并行加载,Blocking 是指同步等待执行。LABjs 通过优雅的语法(script 和 wait)实现了这两大特性,核心价值是性能优化。LABjs 是一个文件加载器。
RequireJS 和 SeaJS 则是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。
模块加载器一般可降级为文件加载器用,因此使用 RequireJS 和 SeaJS,也可以达成 LABjs 的性能优化目的。
RequireJS 和 SeaJS 都是很不错的模块加载器,两者区别如下:
1 两者定位有差异。RequireJS 想成为浏览器端的模块加载器,同时也想成为 Rhino / Node 等环境的模块加载器。SeaJS 则专注于 Web 浏览器端,同时通过 Node 扩展的方式可以很方便跑在 Node 服务器端
2 两者遵循的标准有差异。RequireJS 遵循的是 AMD(异步模块定义)规范,SeaJS 遵循的是 CMD (通用模块定义)规范。规范的不同,导致了两者 API 的不同。SeaJS 更简洁优雅,更贴近 CommonJS Modules/11 和 Node Modules 规范。
3 两者社区理念有差异。RequireJS 在尝试让第三方类库修改自身来支持 RequireJS,目前只有少数社区采纳。SeaJS 不强推,而采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略。
4 两者代码质量有差异。RequireJS 是没有明显的 bug,SeaJS 是明显没有 bug。
5 两者对调试等的支持有差异。SeaJS 通过插件,可以实现 Fiddler 中自动映射的功能,还可以实现自动 combo 等功能,非常方便便捷。RequireJS 无这方面的支持。
6 两者的插件机制有差异。RequireJS 采取的是在源码中预留接口的形式,源码中留有为插件而写的代码。SeaJS 采取的插件机制则与 Node 的方式一致:开放自身,让插件开发者可直接访问或修改,从而非常灵活,可以实现各种类型的插件。
还有不少细节差异就不多说了。
总之,SeaJS 从 API 到实现,都比 RequireJS 更简洁优雅。如果说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库。
最后,向 RequireJS 致敬!RequireJS 和 SeaJS 是好兄弟,一起努力推广模块化开发思想,这才是最重要的。
function gethpath()
{
var url=windowlocationhref;
end=urllastIndexOf("/");
end2=urlsubstr(0,end)lastIndexOf("/");
path=urlsubstr(0,end2)+"/";
return path;
}
可以测试一下:alert(gethpath());
以上就是关于javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg全部的内容,包括:javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg、js获取历史url、怎么用js获取上传文件的完整路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)