它可以是库依赖的或不可知的。我只想知道是否存在可以分析页面的脚本(或者可能已经给出了某些节点),并且......可以保护文本中的寡妇和孤儿。JavaScript的寡妇/孤儿控制?
“保护”是什么意思?我不知道。我考虑过是否可以自己想出一个,但问题的一部分是我甚至不确定我会怎么做。
澄清:这将是对屏幕版本的网站,不能打印。
它可以是库依赖的或不可知的。我只想知道是否存在可以分析页面的脚本(或者可能已经给出了某些节点),并且......可以保护文本中的寡妇和孤儿。JavaScript的寡妇/孤儿控制?
“保护”是什么意思?我不知道。我考虑过是否可以自己想出一个,但问题的一部分是我甚至不确定我会怎么做。
澄清:这将是对屏幕版本的网站,不能打印。
我相信你在HTML文档中描述印刷寡妇?例如,单个单词是否包含在标题的新行中?
jQuery Widon't plugin通过您的HTML寻找这个,并在倒数第二个单词和最后一个单词之间放置一个不间断的空格,以确保至少有两个单词换行到新行。
希望这有助于卡尔
有插件叫widowfix比接受的答案更配置了一下。
$('h1').widowFix({
letterLimit: 10,
prevLimit: 5,
linkFix: true
});
Adobe已经加紧并认定这是网络上的严重问题。他们提出了一个帮助解决寡妇/孤儿和其他文字平衡排版问题的建议。
他们的jQuery插件存储库是在这里: https://github.com/adobe-webplatform/balance-text
给W3C的建议是在这里: http://adobe-webplatform.github.io/balance-text/proposal/index.html
$('span').each(function() {
var w = this.textContent.split(" ");
if (w.length > 1) {
w[w.length - 2] += " " + w[w.length - 1];
w.pop();
this.innerHTML = (w.join(" "));
}
});
#foo {
width: 124px;
border: 1px solid #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="foo">
<span class="orphan">hello there I am a string really really long, I wonder how many lines I have</span>
</div>
我最近碰到了这个问题,我角度的应用程序,并使用我发现this post一些正则表达式添加一个非休息空间之前拉斯T指令:
String.replace(/\s([^\s<]+)\s*$/,\' \;$1');
但是角度是打印非换空间作为一个字符串,所以我采用的是Unicode和它的工作很大:
String.replace(/\s([^\s<]+)\s*$/,'\u00A0$1');
香草JavaScript的解决方案,最初发布于CSS Tricks :
var headings = document.getElementsByTagName('h1');
for (var i=0; i<headings.length; i++) {
var h1s = headings[i].innerHTML.split(' ');
h1s[h1s.length-2] += " " + h1s[h1s.length-1];
h1s.pop();
headings[i].innerHTML = h1s.join(' ');
}
你是说打印页面? – SLaks 2011-01-20 00:56:39
你怎么能在屏幕上有孤儿或寡妇? – SLaks 2011-01-20 01:43:30