Search code examples
htmliframehyperlinkcross-domaingoogle-docs

Force iFrame links (in embedded Google Doc) to open in new window


Very oddly, there seems to be no way of setting Google Document links to open in a new window. (target="_blank").

When publishing a Google Doc and using the embed functionality, an iframe snippet is generated:

<iframe src="https://docs.google.com/document/pub?id=1mfSz_3cWh6eW-X3EhQTtCoZ33Km131An8Kyvmuxi5oM&amp;embedded=true"></iframe>

All links in the document will be opened within the iFrame and redirected via google's redirect service: http://www.google.com/url?q=

Is there any way I can make these links open in a new window? I know there might be cross-frame scripting issues so it's strange Google has no simple way of achieving this ...


Solution

  • OK, in lack of a better alternative I decided to Curl the Google Doc URL and do some jQuery magic before loading it in an iFrame.

    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>");
    

    Google, is this really the recommended workaround? ;)