我需要使用< iframe>
上传嵌入式可视化模板(在Tableau中创建),以便客户端可以实时查看它。但是,在Tableau模板的底部,有几个按钮(特别是“共享”,“记住我的更改”和“编辑” [见截图这里] )我想隐藏,因为它与客户无关;我仍然希望保留其他按钮,例如“导出”,“刷新”等在同一工具栏上。
我发现包装这些按钮的元素是< span class =“tab-fill-left”>

&#xA ;
其中嵌套在多个< iframe>
和其他HTML标记内。我最初的想法是附加一个< script>
标签,如下所示:
< script type =“text / javascript” > 
 document.getElementsByClassName(“tab-fill-left”)。style.display =“none”; 
 alert('hello');
< / script>



 在&lt之后; iframe>
(下面),我必须进入我公司的系统,以嵌入数据可视化页面。
< iframe id =“tableau_content”src =“https://tableau-proxy.insidemedia.net/?site_id=MyCompanyProject&tableau_view=/views / MyCompanyEdition / Home%3F:embed = Yes%26:tabs = No%26:toolbar = Yes%26:display_share = No“width = 100%”height =“100%”style =“border:none; “>
< / iframe>



 但我附加的JavaScript似乎对页面没有任何影响重新加载。有没有办法通过在其后添加另一个Javascript标记来影响< iframe>
下显示的元素?还是有办法让我隐藏这些“分享”,“记住我的在Tableau中更改“和”编辑“按钮?似乎有一些人运行在这种情况下使用Tableau进行同样的问题,无论他们建议什么都不适用于我(我根据雇主的要求使用Tableau 8.x)。
谢谢你

!答案 0 :(得分:2)
好吧,即使在同一个域中,这也行不通:
document.getElementsByClassName("tab-fill-left").style.display = "none";
上面给出了HTMLCollection
。所以你需要这样做:
document.getElementsByClassName("tab-fill-left")[0].style.display = "none";
//----------------------------------------------^^^
希望你明白。
答案 1 :(得分:1)
如果在iframe中加载的页面与父框架不在同一个域中,则使用JavaScript或CSS无法实现。
这是在Web浏览器上实现的一项安全功能,用于防止XSS(跨站点脚本)。