微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 window.open 不能与 Looker 的扩展框架一起使用?

如何解决为什么 window.open 不能与 Looker 的扩展框架一起使用?

我正在尝试在 javascript onclick 函数中使用 window.open 来获取可点击的嵌入图像。由于某种原因,它不起作用。我正在尝试将其嵌入到 Google Looker 扩展框架中。

编辑:当我在 Looker Extension 框架上打开网页时,单击图像时没有任何反应。理想情况下,我希望在单击图像时在新选项卡中打开一个页面

var img = new Image()
img.src =
'https://marketplace-api.looker.com/visualization-screenshots/report_table_icon.png'
img.onclick = function () {
   window.open('https://looker.com/','_blank')
}
document.body.appendChild(img)

解决方法

首先我要说的是,我们正在积极致力于改进扩展框架的文档,很抱歉,目前它有点不透明!

扩展框架是沙盒的,所以它不能访问一些标准的 javascript API,比如 window.open。要启动一个新窗口,您可以使用

extensionSDK.openBrowserWindow('https://looker.com/','_blank')

完整示例(如果有帮助):


import React,{ useContext } from 'react'
import { Space,ComponentsProvider,Text,Button } from '@looker/components'
import { ExtensionContext } from '@looker/extension-sdk-react'

export const HelloWorld = () => {

  const extensionContext = useContext(
    ExtensionContext
  )
  const { extensionSDK } = extensionContext

  const buttonClick = () => {
    extensionSDK.openBrowserWindow('https://google.com','_blank')
  }

  return (
    <>
      <ComponentsProvider>
        <Space p="xxxxxlarge" width="100%" height="50vh" around>
          <Text p="xxxxxlarge" fontSize="xxxxxlarge">
            openBrowserWindow example
          </Text>
          <Button onClick={buttonClick}> click me </Button>
        </Space>
      </ComponentsProvider>
    </>
  )
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。