Программирование > JavaScript & JScript

MSO.Word.HTML.CleanUp

(1/4) > >>

.:cRaw:.:
Я не супер-знаток javascript, мне ближе vbscript, поэтому функцию я написал на vbscript, а потом уже переводил в javascript? но не без проблем... vb-шная отрабатывает как надо, а та, что на js отрабатывает както странно... требуемый результат достигается только после нескольких исполнений, вместо одного!
в чем ошибка, кто подскажет?
вариант на vbscript:

--- Код: ---

valid_nodes="P,H1,H2,H3,H4,H5,H6,B,STRONG,I,EM,U,SUP,SUB,TABLE,TR,TD,TBODY,THEAD,TH,A,UL,OL,LI,BLOCKQUOTE,BR"
valid_attributes="href,width,align,height,border,alt,colSpan,rowSpan"

valid_nodes=Split(valid_nodes,",")
valid_attributes=Split(valid_attributes,",")

Function is_valid(item,valid_list)
For Each valid_item In valid_list
If item=valid_item Then is_valid=True: Exit For
Next
End Function

Function cleanup(html)
Set container=document.CreateElement("div")
container.innerHTML=html
For Each node In container.all
If is_valid(node.tagName,valid_nodes) Then
For Each attribute In node.attributes
If attribute.specified And Not is_valid(attribute.name,valid_attributes) Then
If Not node.removeAttribute(attribute.name) Then node.removeAttributeNode(attribute)
End If
Next
Else
node.removeNode(False)
End If
Next
cleanup=container.innerHTML
End Function


--- Конец кода ---

вариант на javascript:

--- Код: ---

var valid_nodes=\'P,H1,H2,H3,H4,H5,H6,B,STRONG,I,EM,U,SUP,SUB,TABLE,TR,TD,TBODY,THEAD,TH,A,UL,OL,LI,BLOCKQUOTE,BR\';
var valid_attributes=\'href,width,align,height,border,alt,colSpan,rowSpan\';

valid_nodes=valid_nodes.split(\',\');
valid_attributes=valid_attributes.split(\',\');

function is_valid(item,valid_list){
for(k=0;k

mike:
У меня заработал такой вариант:

--- Код: ---

var  valid_nodes=\'P,H1,H2,H3,H4,H5,H6,B,STRONG,I,EM,U,SUP,SUB,TABLE,TR,TD,TBODY,THEAD,TH,A,UL,OL,LI,BLOCKQUOTE,BR\';
var  valid_attributes=\'href,width,align,height,border,alt,colSpan,rowSpan\';

valid_nodes=valid_nodes.split(\',\');
valid_attributes=valid_attributes.split(\',\');

function is_valid(item,valid_list){
for(k=0;k

.:cRaw:.:
неа... я попробовал...
нифига, как минимум приходится трижды пройтись по грязному html, чтобы получить то, что нужно...

mike, возьми какой-нибудь *.doc, чтобы в нем было форматирование разное... и bold и italic и таблицы и выделение цветом и пр. скопируй из word-а текст и вставь в div. у меня для полной очистки требуется трижды нажать на "Сlean Up HTML".

я алертами все облепил, для проверки и получилось, что он просто перепрыгивает иногда через некоторые ноды, вот это мне и не понятно... (

mike:

--- Цитировать ---.:cRaw:.:
mike, возьми какой-нибудь *.doc,
--- Конец цитаты ---

Ну так я на доке и проверял :) VB и JS дают одинаковые результаты.

mike:
Хотя таки да, все зависит от файла... :(

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии