Помощник
|
Вопрос по DOM |
kronos
|
Сообщение
#1
|
||
|
|
||
|
|||
AleXSuS |
5.12.2011, 21:14;
Ответить: AleXSuS
Сообщение
#2
|
|
Выводит тег без адреса картинки? Или выводит тег, как текст?
Поподробнее бы. И код парсера в целом глянуть. |
|
|
kronos
|
Сообщение
#3
|
|
Выводит тег без адреса картинки? Выводит HTML код <img ...>, а должен показывать саму картинку. Это гаджет для windows 7 Код Gadget.populateXML = function() { if (typeof oGadget.aXML == "undefined") { setTimeout("oGadget.populateXML()",10); return false; } var oUL = document.createElement('ul'); for (var iI=0;iI<this.aXML.length;iI++) { var oLI = document.createElement('li'); var oA = document.createElement('a'); oA.href = this.aXML[iI]['link']; oA.title = this.aXML[iI]['title']; oA.description = this.aXML[iI]['description']; oA.onclick = function() { open(this.href,'',''); return false; } var sTitle = document.createTextNode(this.aXML[iI]['title']+" "); var sDesc = document.createTextNode(this.aXML[iI]['description']+" "); var oDate = document.createElement('span'); oDate.className = "dtSmall"; oDate.innerHTML = "("+ getDateTime(this.aXML[iI]['pubDate']) +")"; oA.appendChild(sTitle); oA.appendChild(sDesc); oA.appendChild(oDate); oLI.appendChild(oA); // CUSTOM CLASSNAMES if (iI == 0) { oLI.className = "first"; var oA = document.createElement('a'); oA.className = "aLue"; oA.appendChild(document.createTextNode('Другие последние публикации:')); oLI.appendChild(oA); } else if (iI > 1) oLI.className = "overflow"; oUL.appendChild(oLI); } // remove existing childs in reverse order for (var iI=(this.oXMLTarget.childNodes.length - 1);iI >= 0;iI--) { var aChild = this.oXMLTarget.childNodes[iI]; this.oXMLTarget.removeChild(aChild); } // add the new child this.oXMLTarget.appendChild(oUL); } Еще код, сам парсер RSS Gadget.handleXML = function() { // XML --> RSS this.aXML = []; var aItem = oXML.responseXML.getElementsByTagName('item'); for (var iI=0;iI<aItem.length;iI++) { var aTemp = []; for (var iA=0;iA<aItem[iI].childNodes.length;iA++) { var aNode = aItem[iI].childNodes[iA]; if (aNode.nodeType != 3 && aNode.childNodes.length > 0) // EI TEXT (tai tyhja) { var aNodeName = aNode.nodeName; var aNodeData = aNode.childNodes[0].data; aTemp[aNodeName] = aNodeData; } } this.aXML.push(aTemp); } } Проблема в выводе var sDesc = document.createTextNode(this.aXML[iI]['description']+" "); Ибо он выглядит так <description><![CDATA[<img align="right" src="http://tattooha.com/components/com_mtree/img/listings/s/9563.jpg" alt="Демон с драконом" />]]></description> И выводится как текст <img..., как сделать присобачить туда изображение само? Создть элмент [img] ? Но как тогда распарить первоначальный img. -------------------- |
|
|
AleXSuS |
6.12.2011, 4:59;
Ответить: AleXSuS
Сообщение
#4
|
|
Ну проблема в том, что document.createTextNode - создаёт текстовый узел и в нём теги не работают.
Нужно немного переделать этот участок с использованием document.createElement('img'). Например, так: var img = document.createElement( "img" ); attr = document.createAttribute( "src" ); attr.value = "img.gif"; img.setAttributeNode( attr ); Но переменные нужно назвать, как у вас. Честно признаюсь, не встречался с гаджетами и как там это устроено. Но если скинете его, то я думаю смогу помочь вам. Сообщение отредактировал AleXSuS - 6.12.2011, 4:59 |
|
|
kronos
|
Сообщение
#5
|
|
Но если скинете его, то я думаю смогу помочь вам. Я думаю в этом нет необходимости, это чистый JavaScript и проблема в нём. Окей, идею понял, вопрос только как распарсить тогда исхондный полученный из RSS путь на картинку. Структура такая: <item> <title>Дракон и череп дракона</title> <link>http://feedproxy.google.com/~r/tattoohacom/~3/g0wUe8o1OT4/7791</link> <description><![CDATA[<img align="right" src="http://tattooha.com/components/com_mtree/img/listings/s/9568.jpg" alt="Дракон и череп дракона" />]]></description> <author>misha</author> <pubDate>Tue, 06 Dec 2011 02:33:50 +0100</pubDate> <guid isPermaLink="false">http://tattooha.com/cat/fentezi/drakony/7791</guid> <feedburner:origLink>http://tattooha.com/cat/fentezi/drakony/7791</feedburner:origLink></item> А this.aXML[iI]['description'] Будет возвращать то что в теге description соотственно, <![CDATA[<img align="right" src="http://tattooha.com/components/com_mtree/img/listings/s/9568.jpg" alt="Дракон и череп дракона" />]]>. Как оттуда выдрать src ? Регулярки? -------------------- |
|
|
AleXSuS |
6.12.2011, 14:56;
Ответить: AleXSuS
Сообщение
#6
|
|
Вот набросал код, чтобы проверить - вроде работает:
var pattern = new RegExp('(http|https|)(://|)([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?', 'i'); var sDesc = '<![CDATA[<img align="right" src="http://tattooha.com/components/com_mtree/img/listings/s/9563.jpg" alt="Демон с драконом" />]]>'; var ans = pattern.exec(sDesc); alert(ans[0]); В переменной ans[0] будет: http://tattooha.com/components/com_mtree/i...ings/s/9563.jpg Думаю вы сможете по аналогии сделать для своего скрипта. Правда регулярка не идеальная, я их вообще не очень люблю, взял с какого-то старого скрипта, поэтому в переменную ans попадают ещё кое-какие лишние значения, но если ограничить по первому совпадению, то сначала идёт полный урл. Сообщение отредактировал AleXSuS - 6.12.2011, 14:58 |
|
|
kronos
|
Сообщение
#7
|
|
|
AleXSuS, получилось, очень благодарен.
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Вопрос - платное размещение баннеров на сайте | 10 | WGN | 3183 | 14.12.2020, 14:20 автор: Peterson |
|
Вопрос по рекламе в "инстаграме" Только активные аккаунты могут создавать или редактировать рекламу |
8 | Zubkov | 16049 | 17.1.2020, 17:49 автор: Forumacc |
|
Вопрос-ответ о работе форума | 307 | dos1k | 43322 | 9.11.2019, 17:59 автор: heks |
|
Жена логопед, собрался ей приводить клиентов. Встал вопрос, куда приводить. В теме перечисление доступного мне продвижения, но с чего начать? |
9 | memeplex | 3725 | 16.2.2019, 15:45 автор: zyzy |
|
Предлагаю размещение качественных ссылок на форумах и сервисах вопрос ответ | 21 | ПроФФи | 5019 | 2.3.2018, 20:56 автор: ShowPrint |
Текстовая версия | Сейчас: 19.4.2024, 15:25 |