【问题标题】:createWindow and inject stylesheetcreateWindow 和注入样式表
【发布时间】:2013-01-13 18:31:51
【问题描述】:

我最近刚刚下载了 TideSDK,但遇到了一些问题。基本上,我想创建一个新窗口,使用外部链接(效果很好),然后注入样式表来修改窗口,就像你可以使用 chrome 扩展一样。

var newWindow = Ti.UI.createWindow({
        id: "newwindow",
        url: "http://www.example.com",
        title: "New Window",
        width: 1100,
        minWidth: 400,
        maxWidth: 1100,
        height: 730,
        minHeight: 500,
        maxHeight: 730,
        maximizable: true,
        minimizable: true,
        closeable: true,
        resizable: true,
        fullscreen: false,
        maximized: false,
        minimized: false,
        usingChrome: true,
        topMost: false,
        visible: true,
        transparentBackground: false,
        transparency: false
    });

newWindow.open();

我终其一生都无法弄清楚如何做到这一点。我尝试了以下几种变体:

var css = "<link type='text/css' href='app://style.css' />";

newWindow.document.getElementById('body').appendChild();

什么都没有附加到新窗口。事实上,无论我如何测试新窗口似乎都不会被识别为存在。有什么想法吗?

【问题讨论】:

  • 你控制“新窗口”的来源吗?
  • 不,这是一个运行服务的外部网站,我喜欢但讨厌布局。
  • 除非您在自己页面的 iframe 中拥有外部网站(请参阅 this tutorial),否则这是不可能的。
  • 没问题。我添加了我的解决方案作为答案。
  • 经过大量研究,看起来由于同源策略,您只能在同一域上的 iFrame 上执行此操作:(

标签: javascript tidesdk


【解决方案1】:

如果域匹配,您可以将 CSS 添加到您网站的 iframe 中的外部页面。请参阅this tutorial

但是,由于域是分开的,iframe 和父级之间没有通信。因此,你有一个简单但不幸的答案:根本不可能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 2015-12-21
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多