Html 强制iFrame链接(在嵌入的Google文档中)在新窗口中打开
非常奇怪的是,似乎没有办法将Google文档链接设置为在新窗口中打开。(target=“_blank”) 发布Google文档并使用嵌入功能时,将生成iframe代码段:Html 强制iFrame链接(在嵌入的Google文档中)在新窗口中打开,html,iframe,hyperlink,cross-domain,google-docs,Html,Iframe,Hyperlink,Cross Domain,Google Docs,非常奇怪的是,似乎没有办法将Google文档链接设置为在新窗口中打开。(target=“_blank”) 发布Google文档并使用嵌入功能时,将生成iframe代码段: <iframe src="https://docs.google.com/document/pub?id=1mfSz_3cWh6eW-X3EhQTtCoZ33Km131An8Kyvmuxi5oM&embedded=true"></iframe> 文档中的所有链接都将在iFrame中
<iframe src="https://docs.google.com/document/pub?id=1mfSz_3cWh6eW-X3EhQTtCoZ33Km131An8Kyvmuxi5oM&embedded=true"></iframe>
文档中的所有链接都将在iFrame中打开,并通过google的重定向服务重定向:
有没有办法让这些链接在新窗口中打开?我知道可能存在跨框架脚本问题,所以奇怪的是,谷歌没有简单的方法来实现这一点…好的,由于没有更好的替代方案,我决定卷曲谷歌文档URL,并在将其加载到iFrame之前执行一些jQuery魔术 Curl.php
curl_setopt($ch, CURLOPT_URL, $Url);
[...]
$("#header").hide()
$("#footer").hide()
$('a[href^="http://"]').attr("target", "_blank");
Page.html
$("#google_content").html("<iframe width='100%' height='600' frameborder='0' src='http://www.example.com/Curl/Curl.php'></iframe>");
$(“#谷歌内容”).html(“”);
谷歌,这真的是推荐的解决方法吗?;) 链接到GitHub gist的用户:
这是一个很好的起点。
但是,IE中不支持-iframe srcdoc
我稍微修改过的解决方案,样式是可选的
<style>
body { margin: 0; padding: 0; }
iframe { margin-left: 2vw; margin-top: 2vh; height: 90vh; width: 90vw; }
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<iframe srcdoc="" frameborder="0" scrolling="no"></iframe>
<script>
$(function() {
$.get("https://docs.google.com/document/d/1WUsQ_Kaa_tJljadPpHO2AFwvOAIqrYFS_zehUd6iCVk/pub?embedded=true", function(html) {
var contents = $("iframe").contents();
contents.find("html").html(html);
setTimeout(function() {
contents.find('a[href^="http://"]').attr("target", "_blank");
contents.find('a[href^="https://"]').attr("target", "_blank");
}, 1000); // Actually not sure if timeout is required here...
});
});
</script>
正文{margin:0;padding:0;}
iframe{左边距:2vw;右边距顶部:2vh;高度:90vh;宽度:90vw;}
$(函数(){
$.get(”https://docs.google.com/document/d/1WUsQ_Kaa_tJljadPpHO2AFwvOAIqrYFS_zehUd6iCVk/pub?embedded=true,函数(html){
var contents=$(“iframe”).contents();
contents.find(“html”).html(html);
setTimeout(函数(){
contents.find('a[href^=“http:/”]).attr(“target”,“_blank”);
contents.find('a[href^=“https://“]).attr(“target”,“u blank”);
},1000);//实际上不确定这里是否需要超时。。。
});
});
一个更简单的非编码解决方案是从google Drive嵌入google文档,而不是“已发布”的google文档。
权限允许您确保文档的查看和流通受到限制
请按照“谷歌硬盘”下的部分进行操作
这对我们来说非常有效-链接打开时没有警告,可能会吓唬用户。在使用Google文档发布功能时,我们在这里的参考资料页()上遇到了同样的问题。最终用户会看到drive.google.com拒绝连接图像,因为链接试图在iframe中打开。 上述与CURL相关的解决方案不适用于我们,因为我们需要使文档编辑器简化这一点 我发现这给了我一点暗示,我想我应该试试
src
属性与以下格式的URL
交换:https://docs.google.com/document/d/e/ENTER_YOUR_DOCS_ID/pub?preview
这将在您的文档中嵌入一些恼人的谷歌页眉和页脚,但链接将在新窗口而不是iframe中打开。我知道这已经有很长时间了,但这是唯一有效的方法吗?不幸的是,是的,但今天希望有更好的解决方案!?我发现了一个客户端JS解决方案:谢谢分享!这样做有什么相关缺点吗?@Fabriciph相关缺点-SEO-不确定谷歌是否正确索引了这样的页面。我的示例--您可以查看源文件。。