Fijate si las variables están bien apuntadas (en lugar de self probá con top). Un ejemplo:
Código PHP:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
var i='<!DOCTYPE html><html><body style="background:red; color:white">boo</body></html>';
</script>
</head>
<body>
<iframe src="javascript:top.i" width="300" height="300"></iframe>
</body>
</html>