似乎Tumblr没有提供div标签来自定义“未找到网址”页面的外观。 有没有其他方法来自定义404(URL NOT FOUND)页面?
答案 0 :(得分:5)
提问,提交,使用此代码检测到“自定义”部分中创建的其他网页为“未找到”。
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*/
}
{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}
。
答案 1 :(得分:3)
可悲的是,没有正式的方法可以做到这一点。
但是,如果你使用javascript / jQuery,你可以嗅探以下文字:
无法找到您请求的网址
示例jQuery代码:
$(document).ready(function() {
$("p:contains(The URL you requested could not be found.)").html('YOUR TEXT HERE');
});
我会更倾向于将一个类添加到父/ body元素中,这样您就可以以不同的方式设置整个页面的样式。
希望有所帮助。
答案 2 :(得分: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>
答案 3 :(得分:0)
我也在研究这个问题,我找到了答案。 如果你有404错误页面,该帖子没有任何PostID, 所以你可以检查{PostID}是否为空,检查它是否为404页。