Я использовал ниже код Это мой iframe:
<iframe scrolling='no' frameborder='1' id='fblike' src='http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.XYZ.com%2F&send=false&layout=standard&width=450&show_faces=true&font&colorscheme=light&action=like&height=50'></iframe> $('#fblike').contents().find('.pluginButton').css({'background','#FF8000'});
Я также применил Css напрямую
.pluginButton { background: none repeat scroll 0 0 #FF8000 !important; }
Тем не менее он не работает. Я хочу изменить фон pluginButton. Я хочу применить изображение к его фону. Как применить?
Если я правильно вас понимаю, то то, что вы хотите сделать, это ввести CSS в iframe, который загружает страницу Facebook.
Короткий ответ заключается в том, что это невозможно. Вот ответ, размещенный на SO с более подробным объяснением: могу ли я применить CSS к элементам iframe?
Нет, не из-за пределов iframe. А это его собственный мир. Если домены и т. Д. Совпадают, Javascript может взаимодействовать и выходить и может (если он захочет) вводить CSS в дочерний кадр.
Если контент содержит другой домен, вы ничего не можете сделать. Родительская страница управляет размером кадра и является ли он видимым и может помещать свой собственный контент поверх фрейма, позиционируя и т. Д., Но он не может напрямую влиять на то, как визуализируется фактическое содержимое фрейма.
Вот еще одно объяснение: Как применить CSS к iframe?
Изменить: это не работает с перекрестным доменом.
Здесь есть две разные вещи: стиль блока iframe и стиль страницы, встроенной в iframe. Вы можете установить стиль блока iframe обычным способом:
<iframe name='iframe1' id="iframe1" src="empty.htm" frameborder="0" border="0" cellspacing="0" style="border-style: none;width: 100%; height: 120px;"></iframe>
Стиль страницы, встроенной в iframe, должен быть задан путем включения его в дочернюю страницу:
<link type="text/css" rel="Stylesheet" href="Style/simple.css" />
Или он может быть загружен с родительской страницы с помощью Javascript:
var cssLink = document.createElement("link") cssLink.href = "style.css"; cssLink .rel = "stylesheet"; cssLink .type = "text/css"; frames['frame1'].document.body.appendChild(cssLink);
Код установки css выглядит сдержанно семантически, поскольку html недоступен для обеспечения правильного использования selectors
. Вы, вероятно, получаете доступ к элементу DOM
прежде чем они станут доступными. Элемент фрейма может не стать готовым к событию document.read
y, но на window.load
Поместите код в window.load, чтобы гарантировать, что элементы в iframe доступны для скрипта.
$(window).load(function){ $('#fblike').contents().find('.pluginButton').css({'background','#FF8000'}); })