2016-08-30 2 views
1

iframe 내 div의 클래스를 수정하려고합니다. 내 CSS를 사용하고 Twitter 블록을 변경하십시오. 드루팔 (Drupal 8 look). 그러나 나는 $ is not a function 등등과 같은 많은 오류에 직면했다. 나는 내 js이 너무 빨리 (내 jquery.js 이전에)로드되었다고 생각했지만 요소를 검사하고 모든 것이 작동해야한다. (현재 없음 오류)drupal twitter 블록을 스타일링하는 방법?

HTML

<iframe id="twitter-widget-0" class="twetter-timeline" > 
    <html> 
    <head></head> 
    <body> 
     <div class="timeline-Viewport"> 
      <ol class="timeline-TweetList"> 
      <li></li> 
      </ol> 
     </div> 
    </body> 
    </html> 
</iframe> 

참고 : 나는 내 자신의 코드에없는 년대 iframe에 대한 제어를하지 않습니다.

JS

(function ($, Drupal, drupalSettings) { 
    Drupal.behaviors.yourbehavior = { 
    attach: function (context, settings) { 

     $('iframe').load(function() { 
    $('#twitter-wwidget-0').contents().find("body") 
    .append($("<style type='text/css'> .timeline-Widget{color:red;} </style>")); 
}); 


    } 
    }; 
})(jQuery, Drupal, drupalSettings); 

오류 없음하지만 ... 작동하지 않습니다 그래서 나는 내가 잘못 알고하지 않습니다.

업데이트 : 또한이 코드를 사용해도 작동하지 않았습니다.

(function($) { 

$(document).ready(function() { 
    console.log('hello'); 
    $('#twitter-widget-0').css('width', '100px'); 
    }); 
}(jQuery)); 
+0

iframe의 내용이 도메인이나 Twitter에 있습니까? https://en.wikipedia.org/wiki/Same-origin_policy – ceejayoz

+0

안녕하세요, @ceejayoz입니다. 내 도메인에 있습니다. 묻고 주셔서 감사합니다. –

+0

@ceejayoz 어떤 아이디어 = /? –

답변

1

CORS (간 리소스 공유) 액세스 제어는 내용이 포함 된 문서보다 다른 도메인에서 공급되는 경우 iframe의 내용을 수정 (또는에 대해 알고)에서 포함 된 문서를 방지 할 수 있습니다. 이 문제를 해결하기위한 메커니즘 (예 : postMessage)이 있지만 iframe 내부와 외부 간의 협력이 필요합니다.

트위터의 경우 트위터 게시물의 스타일을 조정하고 퍼가기 피드를 조정하는 방법에 대해 documentation이 있습니다. (트위터가 어둡거나 밝은 테마, 너비, 정렬 및 링크 색상으로 스타일을 제한하는 것처럼 보입니다.)

+1

또한 OP는 의무 사항을 해결하거나 요구 사항을 다루는 방법론을 변경해야합니다. 트위터에 [REST API] (https://dev.twitter.com/rest/public)를 사용하는 것이 좋습니다. – SaidbakR

+0

@ sємsєм 위의 링크를 살펴 보겠습니다! 그러나 나는 왜 내가 내 도메인 내에서도 왜 '