4

Tumblr 似乎没有提供 div 标签来自定义“未找到 url”页面的外观。有没有其他方法可以自定义 404 (URL NOT FOUND) 页面?

4

4 回答 4

5

编辑:此方法仅适用于没有pages的 tumblogs 。

AskSubmit和在 Customize 部分中创建的其他页面将被检测为“未找到”此代码。


描述

Tumblr{block:Posts}对静态页面使用正常循环,但没有分配任何变量,例如{PostID}. 如果我们使用类似post{PostID},的类404 页 所有静态页面我们都会看到一个.post元素,而在帖子上,元素将类似于.post125678

例子

{block:Posts}
  <div class="post{PostID}">
    {block:Photo}all your blocks here{/block:Photo}
  </div>
{/block:Posts}

使用 javascript:

var is404 = document.getElementsByClass('post').length;

使用 CSS:

.post {
    /*this is a 404 page, customize it*/
}

很酷的无 javascript 示例

{block:Posts}
  <div class="post{PostID}">
    {block:Photo}all your blocks here{/block:Photo}
  </div>
{/block:Posts}
<div class="fill-me"></div>

在 CSS 中:

.post { /*Hide Tumblr's 404 message*/
    display: none;
}
.post + .fill-me:before { /*use your message and style*/
    content: 'This page was not found!';
    font-size: 2em;
}

编辑:可能的修复

为了解决这个问题,我们应该找到一个只显示在页面上而不显示在 404 页面上的 {tag}。

{ShortURL},如果它不是错误的,可以使用,因为理论上 404 页面不应该有 ShortURL。

我也尝试过{Permalink},但{PostID}在这种情况下它的行为就像。

于 2014-03-19T05:58:24.870 回答
3

遗憾的是,没有官方的方法可以做到这一点。

但是,如果您使用 javascript / jQuery,您可以嗅探以下文本:

找不到您请求的网址

示例 jQuery 代码:

$(document).ready(function() {
    $("p:contains(The URL you requested could not be found.)").html('YOUR TEXT HERE');
});

我更倾向于向父/正文元素添加一个类,这样您就可以对整个页面进行不同的样式设置。

希望有帮助。

于 2013-05-22T14:28:26.593 回答
0

这对我有用

<script type="text/javascript">
/* Works for me */
    var text_posts = document.getElementsByClassName("regular");
    var text_404 = "The URL you requested could not be found.";
    var title_404 = "Not Found";
    if(text_posts.length == 1){
        var bodyNode = text_posts[0].lastChild;
        if(bodyNode.previousSibling.textContent == text_404) {
            // titleNode.innerHTML = "<a href='/'>Not Found</a>";
            var blog_loc = "http://" + document.domain + "/";
            var query = window.location.href.slice(blog_loc.length);
            var tokens = query.toLowerCase().split('/');
            var keyword = tokens.join(" ");
            var bodyContent = "Looks like you came from an old bookmark, or just looking for a page that doesn't exist. Were you looking for <span class='tg'><a href='/search/"+ escape(keyword) +"'>"+keyword+"</a></span>";
            bodyNode.previousSibling.innerHTML = bodyContent;
        }
    }
</script>
于 2013-05-22T14:51:56.433 回答
0

我也在研究这个问题,我找到了答案。如果你必须到 404 错误页面,该帖子没有任何 PostID,所以你可以检查 {PostID} 是否为空来检查它是 404 页面。

于 2017-08-22T12:57:49.147 回答