Версия для полной HTML-страницы.
Ядром является код @ kennebec, а входными / аргументами функции является список разыскиваемых «текстовых» тегов HTML между апострофами.
Я не понимаю '. undefined 'ошибки после некоторого абзаца ..
(Www.juxta.hu/eng/04.html)
но это работает - ширина размещенных HTML-элементов тоже.
например.
<em>Para<b>graph</b>I.C. etc.</em>
Секрет для меня - метод работы этого раздела:
if (s[i].search("<")==-1)
{s[i].split("<*>")
Если разделенное слово НЕ (== - 1) содержало какие-либо элементы HTML (ширина "<" char), то вырезать это… </p>
.split("<*>")
Мне повезло.
<script>
function shuffle()
{
for (var k = 0; k < arguments.length; k++)
{
var x = document.getElementsByTagName(arguments[k]);
for (var n = 0; n < x.length; n++)
{
var s= x[n].innerHTML.split(' ');
for (var i= 0; i<s.length; i++)
{ if (s[i].search("<")==-1)
{s[i].split("<*>");
var A= s[i].split(''), c1= A.shift(), c3= A.pop() || '';
while(A.length) c1+= A.splice(Math.floor(Math.random()*A.length), 1);
s[i]= c1+c3;
}
}
x[n].innerHTML= s.join(' ');
}
}
}
</script>
<body onload='shuffle("p", "a", "li", "h1", "span", "u", "b", "dd", "dt")'>