【问题标题】:iFrame changing a css class in an iFrameiFrame 更改 iFrame 中的 css 类
【发布时间】:2017-04-13 12:50:06
【问题描述】:

我需要修改 iFrame 对象的支持:我需要个性化嵌入在我的网站中的 Google 表单。 我遇到的唯一问题是,在 iFrame 内部,实际表单宽度(不是 iFrame 宽度)最大为 640 像素,并且是由“freebirdFormviewerViewCenteredContent”类强制执行的。 现在,在 iFrame 中我无法修改它,但如果我理解正确,我可以用 Javascript 覆盖它。我需要将宽度从 640px 更改为 90%。 有人知道如何构建 javascript 或有一个工作脚本吗?

我必须承认我不太擅长 Javascript,因此我将非常感谢您的每一次帮助。

非常感谢!

【问题讨论】:

    标签: javascript jquery css iframe google-forms


    【解决方案1】:

    如果您使用 Jquery 尝试如下,

        $(function(){
        $('#iframe1').on('load', function(){
            $(this).show();
            console.log('load the iframe')
             $(this).contents().find("head")
          .append($("<style type='text/css'>  .my-div2{width:90% !important;}  </style>"));
        });
    });
    

    .my-class 是表单类

    working Demo

    或者,如果您想在单独的 css 文件中编写样式,请执行以下操作。 在 style.css 文件中写入 css

    var cssLink = document.createElement("link");
    cssLink.href = "style.css"; 
    cssLink.rel = "stylesheet"; 
    cssLink.type = "text/css"; 
    frames['frameName'].document.body.appendChild(cssLink);
    

    frameName 是 iframe 名称属性

    【讨论】:

    • 谢谢@Sai,如果我弄错了请指正,只是为了检查:&lt;iframe id="questionario" src="url of the form" width="100%" height="4000" frameborder="0" marginheight="0" marginwidth="0"&gt;Caricamento in corso...&lt;/iframe&gt; &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt;$('#questionario').load( function() { $('#questionario').contents().find("head") .append($("&lt;style type='text/css'&gt; .freebirdFormviewerViewCenteredContent {width:90%;} &lt;/style&gt;")); });&lt;/script&gt;
    • 将 Jquery 代码写入文件中,而不是 Iframe 标记内
    • 再次感谢@Sai!我已经尝试使用我的网站和 plnkr.co,但不幸的是它不起作用...我创建了一个测试表单,iframe 是:&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSft7EfaY7iqpiRHPC-P02lRSm9g9jdosg31OmlHeQfzvVx21w/viewform?embedded=true" width="100%" height="500" frameborder="0" marginheight="0" marginwidth="0"&gt;Caricamento in corso...&lt;/iframe&gt;...也许这是 Google 表单的问题?非常感谢您的帮助,如果有时我犯了菜鸟错误,我很抱歉...
    • 您是否在控制台中遇到任何错误?当我使用该 google docs url 时,我在控制台中收到错误消息说拒绝在框架中显示 'above url' 因为它将'X-Frame-Options' 设置为'sameorigin'。这意味着谷歌不允许在 IFrame 中使用其网址
    猜你喜欢
    • 2021-03-23
    • 2014-05-02
    • 2015-02-02
    • 1970-01-01
    • 2016-09-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    相关资源
    最近更新 更多