javascript - 仅当 href 文件存在时才显示链接

标签 javascript html

我有一个通用的index.html 文件,其中有一个无序列表的链接。我只希望链接在链接到的文件存在时可见。

    <ul>
    <li><a class="button" href="text-1.htm">Text 1</a></li>
    <li><a class="button" href="text-2.htm">Text 2</a></li>
    <li><a class="button" href="text-3.htm">Text 3</a></li>
    </ul>

这可以通过 JavaScript 实现,还是必须使用 PHP?

最佳答案

只要文件与正在查看的页面位于相同的协议(protocol)、域和端口上,就有可能。

例如,您可以执行 ajax 请求来查看是否可以获取每个文件

var buttons = document.querySelectorAll('.button');

for (var i = 0; i < buttons.length; i++) {
    (function(button, http) {
        http.open('HEAD', button.href);
        http.onreadystatechange = function() {
            if (this.readyState != this.DONE || this.status != 200) {
                button.style.display = 'none';
            }
        };
        http.send();
    }(buttons[i], new XMLHttpRequest()))
}

一般来说,您需要手动确保链接确实存在,而不是在客户端检查。

关于javascript - 仅当 href 文件存在时才显示链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39671105/

相关文章:

javascript - 从 kineticjs 中的容器获取舞台

html - 如何设置部分伪元素内容 : "..." 的样式

javascript - 如何使用 Javascript/jQuery 和不区分大小写的文本或搜索字段动态显示/隐藏 div(在 KeyUp、iTunes 风格上)

javascript - Angular.js 模板中的条件表达式

javascript - 正则表达式替换第一行的某些字符

javascript - $.getJSON() 到 $.ajax()

javascript - Hello World - Backbone + Firebase + Backfire

html - CSS Transitions 交叉淡入淡出多个图像无法正常工作

javascript - 如何在文本区域行之外添加图像?

html - 如何将 rgba(82, 168, 236, 0.8) 转换为普通的 #000000 类型颜色?