# 在新窗å£ä¸æ‰“å¼€é¡µé¢ Web组件æ供了在新窗å£æ‰“开页é¢çš„能力,开å‘者å¯ä»¥é€šè¿‡[multiWindowAccess()](../reference/apis-arkweb/ts-basic-components-web.md#multiwindowaccess9)接å£æ¥è®¾ç½®æ˜¯å¦å…许网页在新窗å£æ‰“开。当有新窗å£æ‰“开时,应用侧会在[onWindowNew()](../reference/apis-arkweb/ts-basic-components-web.md#onwindownew9)接å£ä¸æ”¶åˆ°Web组件新窗å£äº‹ä»¶ï¼Œå¼€å‘者需è¦åœ¨æ¤æŽ¥å£äº‹ä»¶ä¸ï¼Œæ–°å»ºçª—å£æ¥å¤„ç†Web组件窗å£è¯·æ±‚。 > **说明:** > > - [allowWindowOpenMethod()](../reference/apis-arkweb/ts-basic-components-web.md#allowwindowopenmethod10)接å£è®¾ç½®ä¸ºtrue时,å‰ç«¯é¡µé¢é€šè¿‡JavaScript函数调用的方å¼æ‰“开新窗å£ã€‚ > > - 如果开å‘者在[onWindowNew()](../reference/apis-arkweb/ts-basic-components-web.md#onwindownew9)接å£é€šçŸ¥ä¸æ²¡æœ‰åˆ›å»ºæ–°çª—å£ï¼Œéœ€è¦å°†[ControllerHandler.setWebController()](../reference/apis-arkweb/ts-basic-components-web.md#setwebcontroller9)接å£å‚数设置æˆnull。 如下é¢çš„本地示例,当用户点击“新窗å£ä¸æ‰“开网页â€æŒ‰é’®æ—¶ï¼Œåº”用侧会在[onWindowNew()](../reference/apis-arkweb/ts-basic-components-web.md#onwindownew9)接å£ä¸æ”¶åˆ°Web组件新窗å£äº‹ä»¶ã€‚ - 应用侧代ç 。 ```ts // xxx.ets import { webview } from '@kit.ArkWeb'; // 在åŒä¸€page页有两个Web组件。在WebComponent新开窗å£æ—¶ï¼Œä¼šè·³è½¬åˆ°NewWebViewComp。 @CustomDialog struct NewWebViewComp { controller?: CustomDialogController; webviewController1: webview.WebviewController = new webview.WebviewController(); build() { Column() { Web({ src: "", controller: this.webviewController1 }) .javaScriptAccess(true) .multiWindowAccess(false) .onWindowExit(() => { console.info("NewWebViewComp onWindowExit"); if (this.controller) { this.controller.close(); } }) } } } @Entry @Component struct WebComponent { controller: webview.WebviewController = new webview.WebviewController(); dialogController: CustomDialogController | null = null; build() { Column() { Web({ src: $rawfile("window.html"), controller: this.controller }) .javaScriptAccess(true) // 需è¦ä½¿èƒ½multiWindowAccess .multiWindowAccess(true) .allowWindowOpenMethod(true) .onWindowNew((event) => { if (this.dialogController) { this.dialogController.close() } let popController: webview.WebviewController = new webview.WebviewController(); this.dialogController = new CustomDialogController({ builder: NewWebViewComp({ webviewController1: popController }) }) this.dialogController.open(); // 将新窗å£å¯¹åº”WebviewController返回给Webå†…æ ¸ã€‚ // è‹¥ä¸è°ƒç”¨event.handler.setWebController接å£ï¼Œä¼šé€ æˆrender进程阻塞。 // 如果没有创建新窗å£ï¼Œè°ƒç”¨event.handler.setWebController接å£æ—¶è®¾ç½®æˆnull,通知Web没有创建新窗å£ã€‚ event.handler.setWebController(popController); }) } } } ``` - window.html页é¢ä»£ç 。 ```html <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width"/> <title>WindowEvent</title> </head> <body> <input type="button" value="新窗å£ä¸æ‰“开网页" onclick="OpenNewWindow()"> <script type="text/javascript"> function OpenNewWindow() { var txt = '打开的窗å£'; let openedWindow = window.open("about:blank", "", "location=no,status=no,scrollvars=no"); openedWindow.document.write("<p>" + "<br><br>" + txt.fontsize(10) + "</p>"); openedWindow.focus(); } </script> </body> </html> ``` **图1** 新窗å£ä¸æ‰“开页é¢æ•ˆæžœå›¾  ## 相关实例 针对创建新窗å£ï¼Œæœ‰ä»¥ä¸‹ç›¸å…³å®žä¾‹å¯ä¾›å‚考: - [æµè§ˆå™¨ï¼ˆArkTS)(Full SDK)(API9)](https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Web/Browser)