You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter:如何获取新打开标签页的document对象

问题解答

首先要明确:你无法获取Telegram新标签页的document对象,核心原因是浏览器的同源策略限制——你的Flutter Web应用和Telegram网页版属于不同域名,浏览器会严格阻止跨域页面之间的DOM访问,这是浏览器的安全机制,没有合法的绕过方式。

另外,Flutter Web中window.open返回的WindowBase本身是框架对浏览器窗口对象的封装,并没有暴露document属性,即使没有同源限制,也无法直接通过这个对象获取目标页面的document。

针对你的需求(打开Telegram并搜索指定内容的聊天),推荐直接构造带搜索参数的Telegram网页版URL,打开新标签页时直接进入搜索结果页面,无需后续操作DOM:

import 'dart:html' as html;

void openTelegramSearch(String keyword) {
  // 构造Telegram网页版的搜索URL
  final searchUrl = 'https://web.telegram.org/k/#?q=${Uri.encodeComponent(keyword)}';
  // 打开新标签页
  html.window.open(searchUrl, '_blank');
}

// 调用示例:搜索包含"cats"的聊天
openTelegramSearch('cats');

这个方式直接利用Telegram网页版的内置搜索参数,跳过了需要操作目标页面DOM的步骤,既符合浏览器安全规则,也能满足你的需求。

内容的提问来源于stack exchange,提问作者Orl13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 06:55:16