te')); return $arr; } /* 遍历用户所有主题 * @param $uid 用户ID * @param int $page 页数 * @param int $pagesize 每页记录条数 * @param bool $desc 排序方式 TRUE降序 FALSE升序 * @param string $key 返回的数组用那一列的值作为 key * @param array $col 查询哪些列 */ function thread_tid_find_by_uid($uid, $page = 1, $pagesize = 1000, $desc = TRUE, $key = 'tid', $col = array()) { if (empty($uid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('uid' => $uid), array('tid' => $orderby), $page, $pagesize, $key, $col); return $arr; } // 遍历栏目下tid 支持数组 $fid = array(1,2,3) function thread_tid_find_by_fid($fid, $page = 1, $pagesize = 1000, $desc = TRUE) { if (empty($fid)) return array(); $orderby = TRUE == $desc ? -1 : 1; $arr = thread_tid__find($cond = array('fid' => $fid), array('tid' => $orderby), $page, $pagesize, 'tid', array('tid', 'verify_date')); return $arr; } function thread_tid_delete($tid) { if (empty($tid)) return FALSE; $r = thread_tid__delete(array('tid' => $tid)); return $r; } function thread_tid_count() { $n = thread_tid__count(); return $n; } // 统计用户主题数 大数量下严谨使用非主键统计 function thread_uid_count($uid) { $n = thread_tid__count(array('uid' => $uid)); return $n; } // 统计栏目主题数 大数量下严谨使用非主键统计 function thread_fid_count($fid) { $n = thread_tid__count(array('fid' => $fid)); return $n; } ?>Iframe src set dynamically through JavaScript is being executed twice on Internet Explorer - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Iframe src set dynamically through JavaScript is being executed twice on Internet Explorer - Stack Overflow

programmeradmin5浏览0评论

I am encountering a very annoying problem with IE. Basically I need to set the source of an IFrame using JavaScript, however the source document is being executed twice not once during each call.

The simplified HTML code is pasted below (I simplified it so that readers can understand it quickly. The source is being set through JavaScript since it will contain dynamic content):

<html>
<head>
<title>Iframe test</title>
</head>
<body>

<iframe id="testIframe" scrolling="no" frameborder="0" src="" width="800" height="600"></iframe>

<script language="JavaScript">
    document.getElementById("testIframe").src = "http://localhost/test.php";
</script>

</body>
</html>

In this example, test.php inserts a record inside a local database once called. Whenever the page above is called using IE, two rows are being inserted on most occasions (sometimes only 1 row is inserted but this is not the norm). I tested the same script on Chrome and Opera and it works correctly on them so this must be an IE issue.

If is set the src directly inside the iframe tag IE starts behaving correctly, however I need to be able to build the URL using javascript.

Has anyone encountered this issue? and does anyone know of a solution/workaround?

Thanks and Regards Pierre

I am encountering a very annoying problem with IE. Basically I need to set the source of an IFrame using JavaScript, however the source document is being executed twice not once during each call.

The simplified HTML code is pasted below (I simplified it so that readers can understand it quickly. The source is being set through JavaScript since it will contain dynamic content):

<html>
<head>
<title>Iframe test</title>
</head>
<body>

<iframe id="testIframe" scrolling="no" frameborder="0" src="" width="800" height="600"></iframe>

<script language="JavaScript">
    document.getElementById("testIframe").src = "http://localhost/test.php";
</script>

</body>
</html>

In this example, test.php inserts a record inside a local database once called. Whenever the page above is called using IE, two rows are being inserted on most occasions (sometimes only 1 row is inserted but this is not the norm). I tested the same script on Chrome and Opera and it works correctly on them so this must be an IE issue.

If is set the src directly inside the iframe tag IE starts behaving correctly, however I need to be able to build the URL using javascript.

Has anyone encountered this issue? and does anyone know of a solution/workaround?

Thanks and Regards Pierre

Share Improve this question edited Jun 9, 2010 at 16:28 Sean Kinsey 38k7 gold badges54 silver badges71 bronze badges asked Jun 9, 2010 at 16:24 Pierre GrimaPierre Grima 1411 gold badge1 silver badge5 bronze badges 5
  • Are you creating the IFrame tag in the script? Are you doing any other stuff in the DOM, like moving it around? Are you using a dialog box like Lightbox or one of its colleagues? – Pekka Commented Jun 9, 2010 at 16:26
  • 1 Please show the FULL CODE, and you may want to use XHR methods ( Ajax ) instead of an iframe. – meder omuraliev Commented Jun 9, 2010 at 16:26
  • First of all thanks for your ments. @Pekka, The IFrame tag is being created in the HTML document as shown above and I am only using plain HTML (and a line of JavaCcript). @meder. That is a fully working sample (so it is a full code). Basically the source being set by JavaScript is executed twice by IE. XHR methods are out of the question in my scenario since the src will be a remote location and that is not supported by Ajax. – Pierre Grima Commented Jun 9, 2010 at 16:38
  • strange. Can you try putting the javascript into the onload and see whether that changes anything? – Pekka Commented Jun 9, 2010 at 17:13
  • take a look at: stackoverflow./questions/12467151/… – A. Binzxxxxxx Commented Oct 2, 2014 at 16:47
Add a ment  | 

3 Answers 3

Reset to default 11

I managed to solve the issue. Basically I am now using

window.frames['testIframe'].document.location.href

instead of

document.getElementById("testIframe").src

and the source document is being hit only once.

I also encountered this same problem, but in my case the cause was IE10. The src that I set dynamically to the IFRAME was opened twice. I resolved the issue by including this in the section :

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9;">

Put the script in the

<head> </head>

not in the

<body></body>

The reason to this is as follows, it will run the iframe once and draw this up, then because the script follows, it will run it again. Had same issue, dropped iframe, due to the demand from search engines want you not to use iframe.

发布评论

评论列表(0)

  1. 暂无评论