2015-07-24 1 views
3

Im, используя это, чтобы захватить источник HTML для одной страницы html. Он работает хорошо, за исключением одной вещи. После ввода значений на мою страницу html, когда я делаю захват, он захватывает только страницу без отредактированных значений.Источник HTML с JQuery или JavaScript после редактирования

Любые идеи, пожалуйста.

var getDocTypeAsString = function() { 
    var node = document.doctype; 
    return node ? "<!DOCTYPE " 
    + node.name 
    + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '') 
    + (!node.publicId && node.systemId ? ' SYSTEM' : '') 
    + (node.systemId ? ' "' + node.systemId + '"' : '') 
    + '>\n' : ''; 
}; 




function getPageHTML() { 
    // alert("<html>" + $("html").html() + "</html>"); 

    console.log(getDocTypeAsString() + document.documentElement.outerHTML);  
} 

и вызов с помощью кнопки

<div class="no-print"> 
    <div class="buttonBar"> 
     <input type="button" class="button" value="Print" onClick="window.print()"> 
     <input type="button" class="button" value="Save" onClick="getPageHTML()"> 
    </div> 
</div> 

Значения редактирования будут поступать из подобных областей, как эта Так что я хотел бы, чтобы захватить отредактированный «PastMedicalHistory» в скважине

<div class='row'> 
    <div class='cell100'> 
     <div class='table'> 
      <div class='cell100 content'> 
       <textarea id='PMH' class='basicTextArea PMHText' name="PastMedicalHistory"></textarea> 
      </div> 
     </div> 
    </div> 
</div> 
+3

Где вы редактируете значения в предоставленном коде? – Rayon

+0

Почему jquery в тегах, когда вы его не используете? – Alex

+0

Был комментарий, предоставленный решением на странице fiddlejs несколько минут назад. Почему это было удалено? Он использовал jquery, но может быть переписан без вызовов jquery. –

ответ

0

Нашел что-то, что, кажется, работает хорошо, но Im не большой эксперт, чтобы судить об этом на возможных ограничениях

держать следить за предметы, как это

$(document).ready(function() { 
    var isDirty = false; 
    $("textarea").on("change", function() { 
     isDirty = (this.defaultValue !== this.value); 
     if (isDirty) 
      this.defaultValue = this.value; 
    }); 

    $("input").on("change", function() { 
     isDirty = (this.defaultValue !== this.value); 
     if (isDirty) 
      this.defaultValue = this.value; 
    }); 
}); 

вызова для источника нового HTML, как этот

function getPageHTML() { 
    console.log("<html>" + $("html").html() + "</html>"); 
} 
1

Что вы пытаетесь достичь?

Заявление document.documentElement.outerHTML примет сам HTML как визуализированный.

Значения входных элементов затем заполняются, поэтому не отображаются через outerHTML.

Вы можете проходить через элементы, проверять их и заполнять DOM.

Что было бы лучше, но чтобы описать, чего вы пытаетесь достичь, и привести пример полного кода в кодефель или аналогичный.

+0

Хорошо, справедливая точка. Я хочу захватить полную и отредактированную страницу html для сохранения в блоге в БД. Прости – morne

1

Вы не можете этого сделать, это easy way. Вы получаете то же самое, что смотрите «исходный код» в своем браузере.

Используйте jQuery или JS для анализа входных значений документа.

Тогда инжектирует это в вашем getDocTypeAsString

Смежные вопросы