Прочесть стиль со страницы HTML
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Прочесть стиль со страницы HTML Expand / Collapse
Автор
Сообщение
13.08.2006 11:14
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 20.01.2008 11:31
Сообщ.: 10, Visits: 17
Со страницы HTML нужно прочесть стиль, то есть, всё, что расположено между тегами:
<style> . . . </style>
Конструкция вида "document.body.innerHTML" не позволяет это прочесть, так как тег <style> не находится внутри "body".
Подскажите, пожалуйста, как это можно сделать.
Сообщ. #902634
13.08.2006 23:11
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.10.2006 13:14
Сообщ.: 14, Visits: 79
честно говоря очень интересно зачем понадобилась такая хитрость. Если напишешь зачем, тогда вполне возможно сможем придумать как тебе помочь. Может проблема заключается совершенно в другом
Сообщ. #902648
17.08.2006 17:53
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.10.2006 13:14
Сообщ.: 14, Visits: 79
Вот кое-чего нарыл:

<html>
<head>
<style type="text/css">
body{
font-family: Verdana;
font-size: 11px;
}
input{
height: 18px;
font-family: Verdana;
font-size: 10px;
}
</style>
<script language="JavaScript">
window.onload=ff;
function ff(){
var ss=document.styleSheets[0];
for (var i=0; i<ss.rules.length; i++){
var r = ss.rules[i]
alert(r.selectorText +': '+ r.style.cssText)
}
}
</SCRIPT>
</head>
<body>
</body>
</html>

Это для IE. А для Mozilla и NN(для NN не проверял, но должно быть)вместо rules нужно писать cssRules. А вот с Opera проблемы - даже не знаю как помочь

Сообщ. #902881
19.08.2006 20:29
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 20.01.2008 11:31
Сообщ.: 10, Visits: 17

Igorek

Огромное спасибо за помощь. Это было нужно именно для IE.

Для чего это? Можно организовать авто сохранение выделенного фрагмента из интернет страницы. Но без авторского стиля это выглядит плохо. Обычно используется файл стиля. Как его получить описано в http://www.relib.com/forums/Topic900779-10-1.aspx

Но на некоторых страницах стиль задаётся прямо на них, для получения его как раз подходит твой вариант.

И для общего развития вопрос: Нет никакой конструкции, позволяющей получить весь код HTML страницы, наподобие document.body.innerHTML или это не предусмотрено физически?

Сообщ. #902972
20.08.2006 9:24
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
Ю_рий (19.08.2006)

И для общего развития вопрос: Нет никакой конструкции, позволяющей получить весь код HTML страницы, наподобие document.body.innerHTML или это не предусмотрено физически?

Технология Ajax.

<html>
<head>
<title> </title>
<script>
function doLoad() {
var req = window.XMLHttpRequest?
new XMLHttpRequest() :
new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = function() {
if (req.readyState == 4)
alert('Loaded:'+req.responseText);
}
req.open("GET", document.location, true);
req.send(null);
}
</script>
</head>
<body>
<center><br>
<input type="button" value="Show me" onclick="doLoad()">
</center>
</body>
</html>

----------------------------------
Я безработный...
Возьмите меня на работу. =)

Сообщ. #902985
20.08.2006 17:50
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 20.01.2008 11:31
Сообщ.: 10, Visits: 17

Vizlim

Спасибо за ответ. Для локальной страницы, я, в своё время написал, более простой вариант, но ещё не успел разобраться, как изменить значение

window.location.href.slice(8).split('%20').join(" ").split('/').join("\\")

для просмотра интернет страниц.

<script>

function f_a () {

fs = new ActiveXObject("Scripting.FileSystemObject");

fi_le = fs.OpenTextFile (window.location.href.slice(8).split('%20').join(" ").split('/').join("\\") , 1);

te_xt =fi_le.ReadAll ();

fi_le.Close ();

alert(te_xt);}

</script>

<input type="button" value="f_a" onClick="f_a()">

В приведённом примере этот вопрос решён, но приходится лезть не только в "ActiveXObject", но и в "Ajax". То есть, вопрос остался: Нет никакой конструкции, позволяющей получить весь код HTML страницы, наподобие document.body.innerHTML или это не предусмотрено физически?

Сообщ. #902993
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 1:41