как - преобразование строки javascript в объект html





подключить примеры (6)


var s = '<div id="myDiv"></div>';
var htmlObject = document.createElement('div');
htmlObject.innerHTML = s;
htmlObject.getElementById("myDiv").style.marginTop = something;

Можно ли преобразовать строку в объект html? как:

string s = '<div id="myDiv"></div>';
var htmlObject = s.toHtmlObject;

так что я могу позже получить его по id и сделать некоторые изменения в своем стиле

var ho = document.getElementById("myDiv").style.marginTop = something;

Thanx миллион заранее, Лина




Вы не можете сделать это с помощью только метода, если вы не используете какую-либо инфраструктуру javascript, такую ​​как jquery, которая ее поддерживает.

string s = '<div id="myDiv"></div>'
var htmlObject = $(s); // jquery call

но все же, это не будет найдено getElementById потому что для этого элемент должен находиться в DOM ... просто создание в памяти не вставляет его в dom.

Вам нужно будет использовать append или appendTo или after т. Д., Чтобы сначала поместить его в dom.

Of'course все это можно сделать с помощью обычного javascript, но для выполнения одной и той же вещи потребуется больше шагов ... и логика в обоих случаях одинакова.




Если браузер, который вы планируете использовать, - это Mozilla (разработка аддона) (не уверен в хроме), вы можете использовать следующий метод в Javascript

function DOM( string )
{
    var {Cc, Ci} = require("chrome");
    var parser = Cc["@mozilla.org/xmlextras/domparser;1"].createInstance(Ci.nsIDOMParser);
    console.log("PARSING OF DOM COMPLETED ...");
    return (parser.parseFromString(string, "text/html"));
};

Надеюсь это поможет




Имел ту же проблему. Я использовал грязный трюк:

var s = '<div id="myDiv"></div>';
var temp = document.createElement('div');
temp.innerHTML = s;
var htmlObject = temp.firstChild;

Теперь вы можете добавлять стили так, как вам нравится:

htmlObject.style.marginTop = something;



В дополнение к методу Gaby aka, мы можем найти элементы внутри htmlObject таким образом -

htmlObj.find("#box").html();

Fiddle доступен здесь - http://jsfiddle.net/ashwyn/76gL3/




После некоторого исследования и общего вытягивания волос решение кажется HTML2PDF . DOMPDF сделал ужасную работу с таблицами, границами и даже умеренно сложной компоновкой, и htmldoc кажется достаточно надежным, но почти полностью htmldoc CSS, и я не хочу возвращаться к оформлению HTML без CSS только для этой программы.

HTML2PDF выглядел наиболее перспективным, но у меня была такая странная ошибка в отношении нулевых ссылочных аргументов node_type. Наконец я нашел решение. В принципе, PHP 5.1.x отлично справился с заменой регулярных выражений (preg_replace_ *) на строки любого размера. В PHP 5.2.1 была представлена ​​директива конфигурации php.ini, называемая pcre.backtrack_limit . Этот параметр конфигурации ограничивает длину строки, для которой выполняется сопоставление. Почему это было введено, я не знаю. Значение по умолчанию было выбрано как 100 000. Почему такая низкая стоимость? Опять же, не знаю.

Для этого была поставлена ​​ошибка против PHP 5.2.1 , которая по-прежнему открыта почти два года спустя .

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

Таким образом, у меня есть 70-килобайтный HTML-файл, чтобы превратиться в PDF. Для этого требуются следующие настройки php.ini:

  • pcre.backtrack_limit = 2000000; # Возможно, больше, чем мне нужно, но это нормально
  • memory_limit = 1024M; # да, один гигабайт ; а также
  • max_execution_time = 600; # да, 10 минут .

Теперь проницательный читатель, возможно, заметил, что мой HTML-файл меньше 100k. Единственная причина, по которой я могу догадаться, почему я столкнулся с этой проблемой, заключается в том, что html2pdf делает преобразование в xhtml как часть процесса. Возможно, это меня перевело (хотя почти 50% раздувание кажется странным). Как бы то ни было, выше работало.

Теперь html2pdf - ресурс hog. Мой файл 70k занимает около 5 минут и не менее 500-600M ОЗУ для создания 35-страничного PDF-файла. Не достаточно быстро (на данный момент) для загрузки в режиме реального времени, к сожалению, и использование памяти позволяет использовать коэффициент использования памяти порядка 1000 к 1 (600 МБ ОЗУ для файла 70 тыс.), Что совершенно смешно.

К сожалению, это лучшее, что я придумал.





javascript html