2013-09-03 5 views
1

YouTube 부가 기능을 사용하고 싶었지만 Vaadin 7과 호환되지 않습니다. 따라서 AbstractJavaScriptComponent가 내 모든 문제를 해결할 수있을 것으로 생각했습니다.Vaadin EmbedSWF

그래서 swfobject를 포함하는 javascript를 만들면 문제가 해결 될 것이라고 생각했습니다. 그러나 이것은 효과가 없습니다. 문제는 ytapiplayer가 유효한 태그가 아닌 것입니다 ...

id (문자열, 필수)는 Flash 내용으로 대체하려는 HTML 요소 (대체 내용 포함)의 ID를 지정합니다. . 그리고 스타일 이름을 설정해서 해결했다고 생각했습니다.

youtubeconnector.js

gui_components_YouTuber = 
function() 
{ 
    var params = { allowScriptAccess: "always" }; 
    var atts = { id: "myytplayer" }; 
    swfobject.embedSWF("http://www.youtube.com/v/DuYVDHfaCyM?enablejsapi=1&playerapiid=ytplayer&version=3","ytapiplayer", "425", "356", "8", null, null, params, atts); 

    function onYouTubePlayerReady(playerId) { 
     ytplayer = document.getElementById("myytplayer"); 
    } 

    function play() { 
     if (ytplayer) { 
     ytplayer.playVideo(); 
     } 
    } 
} 

YouTuber.java

package gui.components; 

import com.vaadin.annotations.JavaScript; 
import com.vaadin.ui.AbstractJavaScriptComponent; 

@JavaScript({"swfobject.js", "youtubeconnector.js"}) 
public class YouTuber extends AbstractJavaScriptComponent 
{ 
    public YouTuber() 
    { 
     setStyleName("ytapiplayer"); 
    } 
} 

큰 문제는 swfobject.embedSWF가 연결하는 DIV 요소를 원하는 것입니다. 그런 것을 만들 수 있습니까? 나는 Document.get()를 시도 ..하지만이 ... unsatified 링크 오류에

답변

0

당신은 ... Component.setDebugId (divId는)를 사용하고 JS 측에에 연결할 수 있습니다

0

되세요 결과 youtube addon으로 vaadin의 BrowserFrame 구성 요소를 사용하려고 했습니까?

개인적으로 필자는 여러 가지, 외부 pdf에 대해 이것을 사용합니다. 또한 프레임 또는 다른 프로젝트의 다른 웹 사이트로 연결됩니다. 그래서 나는 다음과 같은 것이 당신을 위해 일해야한다고 생각하고 있습니다.

BrowserFrame external = new BrowserFrame(null, new ExternalResource("http:///link")); 
Layout.add(external); 

외부 리소스를 사용하려면 호스팅 된 것이고 액세스 할 수 있는지 확인하는 것이 좋습니다.