问题1:在a应用中嵌入iframe展示b应用时,点击大屏显示后b应用页面没有更新的问题,可能是由于浏览器缓存导致的。可以尝试以下解决方案:

  1. 在嵌入iframe的标签中添加一个随机参数,以确保每次加载iframe时都是一个新的URL。例如:
<iframe src="引入地址?timestamp=<%= new Date().getTime() %>" frameborder="0"></iframe>
  1. 强制浏览器禁用缓存。可以通过设置HTTP响应头或在URL中添加一个随机参数来实现。例如,在服务器端设置以下HTTP响应头:
Cache-Control: no-store, must-revalidate
  1. 如果仍然无法解决缓存问题,可以尝试在每次操作后手动刷新iframe。在点击大屏显示时,执行以下JavaScript代码:
const iframe = document.getElementById("saasAiAssist");
iframe.contentWindow.location.reload(true);

问题2:在c应用中引入iframe展示b应用时,在360浏览器中遇到跨域访问的安全问题。这是由于浏览器的安全策略限制导致的。为了解决这个问题,可以尝试以下方法:

  1. 确保b应用的响应头中正确设置了Access-Control-Allow-Origin头,允许c应用的域名访问b应用。例如,在b应用的服务器端设置以下响应头:
Access-Control-Allow-Origin: https://www.c-app.com
  1. 如果在c应用中使用了iframesandbox属性,可以确保未设置sandbox属性的allow-same-origin标志。例如:
<iframe src="b应用地址" frameborder="0" sandbox="allow-scripts"></iframe>
  1. 如果上述方法无效,可以尝试使用window.postMessage进行跨域通信。在b应用中使用以下方法发送消息给c应用:
window.parent.postMessage("消息内容", "https://www.c-app.com");

在c应用中监听message事件来接收消息:

window.addEventListener("message", (event) => {
  if (event.origin === "https://www.b-app.com") {
    // 处理接收到的消息
  }
});

请注意,跨域访问的安全问题是由浏览器限制实施的,因此无法完全解决。在处理跨域问题时,应考虑使用安全且合法的方法,并确保要跨域访问的应用程序是您有权访问的。