Silverlight 응용 프로그램에서 미리보기 기능을 구현하려면 외부 브라우저 창을 사용하고 싶습니다. 항목 목록이 있으며 사용자가 이러한 항목 중 하나를 클릭 할 때마다 별도의 브라우저 창에서 열립니다 (내용은 PDF 문서이므로 SL 응용 프로그램의 외부에서 처리됩니다). Silverlight 3의 HtmlPage.Window.Navigate 메서드를 사용하여 이미 열려있는 브라우저 창을 다시 사용합니다.
지금, 이것을 달성하기 위해, 나는 단순히 잘 작동HtmlPage.Window.Navigate(new Uri("http://www.bing.com"), "_blank");
사용합니다.
내 고객은 클릭 할 때마다 새 브라우저 창이 열리는 것을 좋아하지 않습니다. 그는 항목을 클릭 할 때마다 브라우저 창을 다시보고 싶습니다. 그래서 내가 나가서이 구현하는 시도 :
옵션 1 -과 같이, Navigate 메서드의 오버로드를 사용
HtmlPage.Window.Navigate(new Uri("http://www.bing.com"), "foo");
나는 창을 다시 사용할 것이라고 가정 할 때 동일한 대상 매개 변수를 값 (foo)은 후속 호출에서 사용됩니다.
이것은 작동하지 않습니다. 나는 매번 새로운 창을 쓴다.
옵션 2 -이 작동하지 않는 HtmlPage
HtmlPage.PopupWindow(new Uri("http://www.bing.com"), "blah", new HtmlPopupWindowOptions());
에 PopupWindow 방법을 사용합니다. 나는 매번 새로운 창을 쓴다.
옵션 3 - 열린 창으로의 핸들을 얻고 후속 호출
private HtmlWindow window;
private void navigationButton_Click(object sender, RoutedEventArgs e)
{
if (window == null)
window = HtmlPage.Window.Navigate(new Uri("http://www.bing.com"), "blah");
else
window.Navigate(new Uri("http://www.bing.com"), "blah");
if (window == null)
MessageBox.Show("it's null");
}
이 작동하지 않습니다에 그것을 다시 사용합니다. 나는 PopupWindow() 메서드에 대해서도 똑같은 방법을 시도했는데 매번 널 (null)이되었으므로 매번 클릭 할 때마다 새 창이 열립니다. EnableHtmlAccess 및 IsPopupWindowAllowed 속성을 모두 확인한 후 true를 반환합니다 (as they should).
옵션 4 - 사용 평가 방법이 작동하지 않는 자바 스크립트
private const string javascript = @"var popup = window.open('', 'blah') ;
if(popup.location != 'http://www.bing.com'){
popup.location = 'http://www.bing.com';
}
popup.focus();";
private void navigationButton_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Eval(javascript);
}
일부 사용자 지정을 실행합니다. 나는 매번 새로운 창을 쓴다.
옵션 5 - 사용하는 CreateInstance 페이지
private void navigationButton_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.CreateInstance("thisIsPlainHell");
}
에 내 영문으로 나는이 작동하지 않습니다
function thisIsPlainHell() {
var popup = window.open('http://www.bing.com', 'blah');
}
이 자바 스크립트 일부 사용자 지정을 실행합니다. 나는 매번 새로운 창을 쓴다.
내가 잘못 했나요? 나는 확실히 자바 스크립트 전문가가 아니므로 여기에서 분명한 것은 분명합니다.
건배, 필
죄송합니다. 사용 중입니다. HtmlPage.Window.Navigate (새 Uri ("http://www.bing.com"), "_blank"); atm, 새로운 창에서 열어서 좋겠다. – Phil