Tumblr 似乎没有提供 div 标签来自定义“未找到 url”页面的外观。有没有其他方法可以自定义 404 (URL NOT FOUND) 页面?
问问题
8621 次
4 回答
5
编辑:此方法仅适用于没有pages的 tumblogs 。
Ask、Submit和在 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 回答