file_frameElementWrapping.html (1023B)
1 <html> 2 <script> 3 function check(elt, expectAccess, prop) { 4 var access = false; 5 try { 6 elt[prop]; 7 access = true; 8 } 9 catch (e) {} 10 return access === expectAccess; 11 } 12 13 function sendMessage(success, sameOrigin, prop) { 14 var result = success ? 'PASS' : 'FAIL'; 15 var message; 16 if (sameOrigin) 17 message = 'Can access |' + prop + '| if same origin'; 18 else 19 message = 'Cannot access |' + prop + '| if not same origin'; 20 parent.postMessage(result + ',' + message, '*'); 21 } 22 23 var sameOrigin = location.host !== 'example.org'; 24 var pass = check(frameElement, sameOrigin, 'src'); 25 if (!pass) { 26 sendMessage(false, sameOrigin, 'src'); 27 } else { 28 pass = check(parent.location, sameOrigin, 'href'); 29 sendMessage(pass, sameOrigin, 'href'); 30 } 31 </script> 32 </html>