summaryrefslogtreecommitdiff
path: root/itjs.class
diff options
context:
space:
mode:
Diffstat (limited to 'itjs.class')
-rw-r--r--itjs.class13
1 files changed, 10 insertions, 3 deletions
diff --git a/itjs.class b/itjs.class
index 86e9e86..22c5730 100644
--- a/itjs.class
+++ b/itjs.class
@@ -21,7 +21,7 @@ class itjs
*/
function send_headers()
{
- if (!preg_match('/Opera/', $_SERVER['HTTP_USER_AGENT']) && !$_REQUEST['itjs_call']) # text/plain breaks Opera 8.51/Linux and IFrame fallback
+ if (!preg_match('/Opera/', $_SERVER['HTTP_USER_AGENT']) && !$_REQUEST['itjs_iframe']) # text/plain breaks Opera 8.51/Linux and IFrame fallback
header('Content-Type: text/plain; charset=iso-8859-1'); # Berni reported some Firewalls to require this
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+10) . ' GMT'); # prevent broken data on IE reloads
@@ -37,8 +37,15 @@ function serialize($values)
{
if ($callback = it::replace(array('[^\w.]' => ""), $_REQUEST['itjs_call']))
{
- $header = "<script type='text/javascript'>$callback(";
- $footer = "," . intval($_REQUEST['itjs_callid']) . ")</script>";
+ $target = $_REQUEST['itjs_iframe'] ? "parent" : "window";
+ $header = "$target.it_loader && $target.$callback(";
+ $footer = "," . intval($_REQUEST['itjs_callid']) . ");";
+
+ if ($_REQUEST['itjs_iframe']) # iframe-based loading required by Opera 7
+ {
+ $header = '<script type="text/javascript">' . $header;
+ $footer .= "</script>";
+ }
}
return $header . itjs::encode($values) . $footer;