Если вы контролируете данные, то, вероятно, лучший способ это сделать. Другие ответы здесь имеют свои преимущества, но также все они довольно несовершенны. Например, метод querySelector()
доступен только для гаджетов Windows Desktop, работающих в режиме IE8 на хост-компьютере. Регулярные выражения особенно ненадежны для анализа HTML и не должны использоваться.
Если вы не контролируете данные или если данные не передаются по безопасному протоколу, вам следует больше заботиться о безопасности, чем об эстетике кода - возможно, вы представляете потенциальные угрозы безопасности для гаджета и хоста машина, вставив неанализованный HTML в документ. Поскольку гаджеты запускаются с привилегиями уровня пользователя или администратора, очевидная угроза безопасности заключается в внедрении сценария source / MITM , оставляющем дыру для вредоносных сценариев, которые могут нанести ущерб машине, на которой он работает.
Одним из возможных решений является использование htmlfile
ActiveXObject:
function getElementFromResponse(divId)
{
var h = new ActiveXObject("htmlfile");
h.open();
// disable activex controls
h.parentWindow.ActiveXObject = function () {};
// write the html to the document
h.write(html);
h.close();
return h.getElementById("divID").innerText;
}
Вы также можете использовать метод IE8 toStaticHTML()
, но ваш гаджет должен работать в режиме IE8.