#javascript #jquery
Вопрос:
Поэтому я немного застрял и ищу, не может ли кто-нибудь оказать мне некоторую помощь, поэтому у меня есть следующий код jQuery:
let VimeoBlock = function($element) {
function init() {
adjustPositioning();
}
function adjustPositioning() {
const classList = $element.attr('class');
if (classList.indexOf('alignwide') > -1) {
const vimeo_iframe = $element.find('iframe');
console.log(vimeo_iframe);
}
}
return {
init: init,
}
}
$(document).ready(function () {
$('.wp-block-embed-vimeo').each(function (i, ele) {
(new VimeoBlock($(ele))).init();
});
});
console.log(vimeo_iframe);
выводит следующие элементы, когда я могу получить доступ к iFrame
индексу с его свойствами:
Я могу настроить таргетинг iFrame
, но я хочу иметь возможность настроить таргетинг на родительский класс внутри iFrame
— Как бы я сделал это и добавил CSS к этому классу?
Комментарии:
1. Почти уверен, что вы можете ориентироваться только на сам элемент iframe (граница, поля и т. Д.), Но не на какой-либо контент (внутри html), если он не из того же домена из-за проблем с безопасностью.
2. Если iframe находится в другом источнике, вы не сможете получить доступ к его DOM. См.: Политика перекрестного происхождения
3. Это не в том же домене, я надеялся, что смогу нацелиться на родительский класс, потому что у него есть важные спецификации ширины, и я хотел его перезаписать.
4. Спасибо за разъяснения, ребята!
Ответ №1:
Поскольку вы не можете сделать это для стиля iframe, если он находится в другом источнике, в этом случае решения нет. Однако, если бы это был тот же домен или iframe
домен с внутренней структурой, вы могли бы сделать это так:
document.getElementById("youriframeid").contentDocument.querySelector("yourselector").style.display = 'none';
Обратите внимание, что я использовал фиктивные селекторы и фиктивный стиль, вместо этого вы можете использовать свой.