QtWebAssembly下使用iframe无法加载第三方网站的问题

前言

请优先看看我的这个文章【Qt WebAssembly实验记录】,了解QtWebAssembly的基本情况以及如何在C++环境中使用js。然后应该就可以知道如何在代码中调用文章后面提供的js函数了。

现象

假如用Qt(emsdk)自带服务器启动的话:
在这里插入图片描述14:52:54: Starting D:\Qt\emsdk\emsdk\python\3.9.2-nuget_64bit\python.exe D:/Qt/emsdk/emsdk/upstream/emscripten/emrun.py --browser firefox --port 30000 --no_emrun_detect --serve_after_close E:/zhongyong/zyQt/WasmInput/build-WasmInput-WebAssembly_Qt_6_5_0_single_threaded-MinSizeRel/WasmInput.html...
会无法加载页面:
在这里插入图片描述
但是你把编译出来的东西

在这里插入图片描述
放到自己的服务器去,再次访问,就ok了:

在这里插入图片描述

分析

打开D:/Qt/emsdk/emsdk/upstream/emscripten/emrun.py看看,并且问问chatgpt
在这里插入图片描述假如想修改的话,应该修改这几个就可以了。

注意事项

不能用 https://www.baidu.com 来测试,因为它禁止了别人在iframe中打开它;最好用 https://www.bing.com来测试

其他

在wasm中打开iframe的办法:

// 创建iframe,并显示
EM_JS(void, createIframe, (const char *urlText, int x, int y, int width, int height), {

    var url = UTF8ToString(urlText);

    var iframe = document.createElement('iframe');
    iframe.src = url;
    iframe.scrolling = 'yes';

    // 调整 Iframe 的大小和位置
    var style = 'border:medium double rgb(250,0,255); position:absolute;  margin: 0px; padding: 0px; z-index: 10000; left:' + x
                + 'px; top:' + y
                + 'px; width:' + width
                + 'px; height:' + height
                + 'px; opacity:1.0';

    iframe.style = style;
    document.body.appendChild(iframe);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值