【问题标题】:How to make Telegram Instant View wait for page to render javascript?如何让 Telegram Instant View 等待页面呈现 javascript?
【发布时间】:2018-02-23 16:04:00
【问题描述】:

我想为我的博客创建一个模板,它是用 React 编写并在客户端呈现的。

我想知道,有没有办法提示 Telegram Instant View 我希望它获取并执行客户端 javascript 并等到它呈现动态页面内容,然后再开始处理我的 Instant View 模板并从中提取元素与 XPath?

到目前为止,作为一种解决方法,我必须实现同构服务器端渲染。

【问题讨论】:

  • 我认为这不可能,原因与 Groosha 提到的动态生成相同。据我所知,IV 机器人是我们无法访问的后端机器人,也不确切知道它的作用。你不妨试试在IV Chat 中提问,也许那里的人会更清楚!

标签: reactjs telegram isomorphic-javascript


【解决方案1】:

API 或类似的东西中没有可用的“Telegram IV 机器人”。相反,您应该得到InstantView documentation 并自己创建一个模板。

很遗憾,目前无法在您的网站上添加对 IV 的“本机”支持,制作模板后,您可以在 IV 编辑器中使用“签入 Telegram”功能时提取rhash 参数。完成模板后,使用链接 "https://t.me/iv?url=YOUR_URL&rhash=YOUR_RHASH" 将向人们显示来自 YOUR_URL 的即时查看文章。

【讨论】:

  • 感谢您的回答,@Groosha,但您的回答有点超出我的问题范围。我的问题的重点是:是否可以让机器人等待页面上的脚本首先呈现内容,并仅在创建动态内容后才开始解析我的即时视图模板。我还没有找到任何方法来做到这一点,所以我目前依赖于我的服务器端渲染。
  • 我发现您不了解 Instant View 的工作原理。有 Telegram 自己的爬虫,它解析通过 Telegram 共享的链接,如果域支持 Instant View,则应用模板。由于您的域不支持 Instant View,因此您无法向您的网站添加 IV 支持,而是在 Instantview.telegram.org 上制作自己的模板并发送特殊格式的链接(正如我在回答中所写)
  • 我确实了解 IV 的工作原理,并且我确实在这里为我的域创建了一个 IV 模板:instantview.telegram.org。问题是,当 IV 机器人处理我的模板时,我的页面的动态呈现的 DOM 元素(使用 javascript 创建,在客户端,而不是在服务器端)还不存在,因此无法提取它们使用我的模板的 XPath 选择器并显示在生成的即时视图中。我的问题是:是否可以告诉 IV 机器人等待客户端 javascript 首先呈现我的页面的动态内容(在模板配置中)。
  • 那么您的网页不支持即时查看,如他们自己所见Checklist
  • 再一次,这并不完全正确。我的网站是一个单页应用程序(就像现在的许多网站一样),它的所有内容都是动态呈现的,但它不会长期改变(它不像 Medium 的帖子墙,一直在更新,因此无法抓取)。因此,由更智能的机器人进行分析是完全可以的 - 例如。谷歌机器人设法完全索引它。不幸的是,这对于 Telegram IV 机器人来说可能是不可能的。这就是我问这个问题的原因 - 可能暗示机器人等待页面呈现。现在我必须在服务器端预渲染这些动态元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-02
  • 2021-10-13
  • 1970-01-01
相关资源
最近更新 更多