<!doctype html>
<title>Link with onclick navigation to javascript url with document.write and href navigation </title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="log"></div>
<iframe id="test" name="test"></iframe>
<a target="test" onclick="javascript:(function() {document.write('<script>parent.postMessage(&quot;write&quot;, &quot;*&quot;)</script>'); return '<script>parent.postMessage(&quot;click&quot;, &quot;*&quot;)</script>'})()" href="href.html">Test</a>
<script>
var t = async_test();
var events = [];
t.step(function() {
  document.getElementsByTagName("a")[0].click()});
onmessage = t.step_func(
  function(e) {
    events.push(e.data);
    if (events.length === 2) {
      assert_array_equals(events, ["write", "href"]);
      t.done();
    }
  });
</script>
