-2

我有一个具有扩展名的文件:

.doc or .docx

我想以这种方式链接它:

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" +
(what syntax do I need to add here if I wanted to print which extention file is exist on that folder)

在 PHP 中我们可以做到这一点

var1 = ".doc";
var2 = ".docx";

var1 ? var1 : var2;

JavaScript 中 this 的等价物是什么?

4

5 回答 5

3

JavaScript 中的三级运算符

JavaScript 中确实存在三级运算符:

var var1=".doc";
var var2=".docx";

alert(var1 ? var1 : var2);​

证明:http: //jsfiddle.net/gRMf2/

它将像这样工作(jsfiddle):

alert(var1 ? var1 : var2);​

使用未定义的变量

然而,如果var1可以是未定义的,你会得到一个错误(证明:jsfiddle)。在这种情况下,编写这将解决问题(证明:jsfiddle):

alert(typeof var1 !== 'undefined' ? var1 : var2);​
于 2012-08-20T01:48:03.460 回答
3

在 javascript 中,var1 || var2与 php 相同var1 ? var1 : var2

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" + (var1 || var2);
于 2012-08-20T01:48:14.863 回答
2

JavaScript 无法访问文件系统。即使是这样,它也将是最终用户的本地文件系统。您需要检查该文件是否存在于 PHP(或您选择使用的任何服务器端语言)中。

于 2012-08-20T01:52:59.713 回答
1

我不确定你在这里做什么:

var1=".doc";
var2=".docx";

var1? var1 : var2;

这将始终返回“.doc”,因为无论您使用的是 PHP 还是 Javascript,var1 的计算结果始终为 true。


听起来你可能会追求这样的东西:

// this function is from http://stackoverflow.com/a/3646923/1188942
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

var ext;
if (UrlExists("http://www.mywebsite.com/folder/file.doc"))
    ext = ".doc";
else
    ext = ".docx";
于 2012-08-20T01:49:27.903 回答
0

这在 Javascript 中非常相似:

var doc = ".doc";
var docx = ".docx";
var ext = doc ? doc : docx;
alert(ext);
于 2012-08-20T01:50:50.607 回答