Я использую сайт, который выглядит следующим образом:
...
<body>
<iframe src="blabla/blabla..."></iframe>
</body>
...
iframe
загружает другой файл HTML из того же домена;у него есть собственное тело
В Firebug это выглядит так:
...
<body>
<iframe src="blabla/blabla...">
...
<body class="classname ">
...
</body>
</iframe>
</body>
...
Проблема в том, что сайт будет проще просматривать, если бы я мог добавить имя второго классако второму телу, например:
...
<body>
<iframe src="blabla/blabla...">
...
<body class="classname classname2">
...
</body>
</iframe>
</body>
...
Я не являюсь владельцем домена, я просто хочу «ремикшировать» веб-контент.
Я пробовал такие вещи:
// ==UserScript==
// @name descr
// @namespace http://localhost
// @description descr
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
// @include http://web.site/sub.ab*
// ==/UserScript==
$("iframe").load(function(){
alert(document.getElementById('frameid').contentDocument);
});
Их идея заключалась в использовании
document.getElementById('frameid').contentDocument.document.getElementsByTagName('body')[0].addClass('classname2')
Но это не работает.Пробовал тоже самое с помощью contentwindow
, опять ничего.Оповещение сообщает мне, что указан указанный элемент: [object HTMLDocument]
, но когда я что-то набираю, например .document
, оповещение становится пустым или не отображается вообще.
Что я делаю неправильно?
Редактировать: Не уверен, что это как-то связано с этим, но я забыл сказать, что на самом деле есть 2 фрейма: один блокируется Adblocker, поэтому я не упомянул об этомдо этого.