views:

736

answers:

3

Hi and thanks for reading,

I can access local contents loaded in an <iframe> with

$("#frame").contents().find('div').css(...)

When using a <object type="text/html"> instead (same local site), the contents function does not work. Is there another way or did i miss something ?

Here follows the test code :

HTML :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
<html>
<head>
    <link type="text/css" href="css/style.css" rel="stylesheet"/>
    <script type="text/javascript" src="js/jquery-1.3.2-min.js"></script>   
    <script type="text/javascript" src="js/try.js"></script>
</head>
<body>
    <div id="header"></div>
    <div id="here_goes_a_proprietary_side_i_dont_want_to_mess_inside">
        <object id="frame" type="text/html" data="/nastysite/index.php" width="100%" height="100%"></object>
    </div>
    <div id="footer"></div>
</body>

JS:

$(document).ready(function() {

    alert("go ?");  //temporary solution to wait until everything is loaded.
    $("#frame").contents().find('div').css("background-color", "red"); //nothing appens
    console.debug($("#frame").contents().find('div'));  //nothing
});
A: 

Your object tag closes immediately, so it has no child div to find.

<object id="frame" type="text/html" data="/nastysite/index.php" width="100%" height="100%"></object>
Jage
While its true he needs to use a full closing tag and not short syntax, im still not sure if it will expose the DOM of the page he is "importing".
prodigitalson
Tried with the short syntax, but it has no more effect (the site is still loaded successfully).
Cal
A: 

Is the iframe loading from a different domain ? I believe JavaScript doesn't allow that. Try your code with an iframe that loads something locally.

sjobe
It is a local content.
Cal
A: 

Not sure, but this post might help. It specifically talks about the <object> tag's data not changing.

Topher Fangio
Interesting thanks. However i don't want to change the content of the object tag, but the content of the loaded data.
Cal