window.openで開いたページに書き込みたい

このQ&Aのポイント
  • window.openを使用して開いたページで書き込みを行う方法について
  • 表示されたページを読み込むまで待ってから書き込みを行う方法について
  • Chromeの拡張機能を使用することでクロスオリジンのエラーを回避する方法について
回答を見る
  • ベストアンサー

window.openで開いたページに書き込みたい

<html> <script language="javascript"><!-- function startIE(jpURL) { var newWindow = window.open(jpURL, null, 'width=500,toolbar=yes,menubar=yes,scrollbars=yes'); newWindow.onload = function() { alert("ページが読み込まれました!");// ここに読み込みが完了したら実行したい処理を記述する var NAIYOU=document.getElementById('NAIYOU'); var Kakikomi=newWindow.document.getElementByName('p'); Kakikomi.innerHTML= NAIYOU.innerHTML; } } // --></script> <a href="javascript:startIE('https://www.yahoo.co.jp/')">IE起動</a> <div id="NAIYO">ああああああああああああああああああああああああ</div> </html> ------------------------------------- divの内容は自動で色々変更するようにしていますが 参考として上記のようにしました。 ボタンを押してブラウザを起動したら、Yahooを開き 「あああああああああああ」を検索ボックスに入れたいと思っています。 しかし、ロードが終わっていない状況だからから 書き込むことが出来ません。 OnLoadを組み込んでみましたが、以下のようなエラーが出ます。 Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame. Chromeの拡張機能にしたら出来るようになるのでしょうか? お手数をおかけしますが、回答よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5643)
回答No.3

Chromeの拡張機能のことは詳しくないのでわかりません。 スタイルシートを操作するのとはわけが違うような気がします。 もしかセキュリティを考慮して禁止されているとしたら、 それができたとしても悪用させたくないと思われる人が多くて、 回答がつかないような気がします。

catsmoon
質問者

お礼

別の方法を見つけたので、試そうと思います。 VBSを利用します。

その他の回答 (2)

  • dell_OK
  • ベストアンサー率13% (740/5643)
回答No.2

訂正。 Kakikomi.value = NAIYOU.innerHTML;//ターゲットが<input>タグだとわかっているのでvalueで設定する

  • dell_OK
  • ベストアンサー率13% (740/5643)
回答No.1

ローカルの環境で試すとうまくいきました。 記載のソースを変更。 var Kakikomi = newWindow.document.getElementsByName('p').item(0);//ByNameはElement「s」で複数取得するためのもので、そのひとつ目 Kakikomi.value = NAIYOU.innerHTML;//ターゲットが<a>タグだとわかっているのでvalueで設定する <a href="javascript:startIE("yahoo.html')">IE起動</a>//同一フォルダのファイルを参照する <div id="NAIYOU">ああああああああああああああああああああああああ</div>//idがNAIYOで不一致でした 「yahoo.html」ファイルを追加 <html> <input type="text" name="p"> </html> なので「window.openで開いたページに書き込む」やり方はこれでいいのだと思いますが、 こちらの記事を見ると、 https://mug.hatenadiary.org/entry/20060326/1143381630 「ドメイン(プロトコル含む)の違うページには、たとえ自分が開いたとしてもアクセスできません。 通常のブラウザの設定ではそうなっていますし、アクセスできたらセキュリティ上問題があります。」 とあるので、禁止されていてだめなのかも知れません。 まったく別のアプローチですが、 「ヤフーの検索画面を表示したい」と言うことでしたら、このような方法もあります。 <html> <script language="javascript"> function startIE(jpURL) { var NAIYOU = document.getElementById('NAIYOU'); var url = jpURL + NAIYOU.innerHTML; var newWindow = window.open(url, null, 'width=500,toolbar=yes,menubar=yes,scrollbars=yes'); } </script> <a href="javascript:startIE('https://search.yahoo.co.jp/search?p=')">検索結果</a> <a href="javascript:startIE('https://search.yahoo.co.jp/?p=')">検索準備</a> <div id="NAIYOU">ああああああああああああああああああああああああ</div> </html>

catsmoon
質問者

お礼

回答ありがとうございます。 やっぱり出来ないのですね。 例としてYahooをあげただけですので、実際は別のサイトです。色々提示して頂いたのに申し訳ありません。 Chromeの拡張機能にしたら出来たりするのでしょうか。 出来そうなのですが、良い情報が見つかりませんでした。 でも、特定サイトでbackgroudの色を変えるとかも出来るみたいだったので、特定サイトの特定IDに値を書き込みも出来る気がするのです。

関連するQ&A

  • 1ページ内で複数のwindow.onload = functionの動作

    Ajaxを使用して取得してきたRSSをinnerHTMLで表示するスクリプトを1ページ内に複数設置したいのですが、うまくいきません。 prototype.jsを使うと複数のonloadを制御できるという記事を参考にしたのですが、動作しませんでした。(WindowsIE6で検証してます) http://hori-uchi.com/archives/2005_09.html BODY以下のソースはこちらです。現状だとどちらか一つだけなら動作する感じです。これをどちらも動作する方法をご教授いただけませんでしょうか。宜しくお願いします。 //RSS取得1箇所目 <div id="p1">roading1</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://###"; } var xml = {}; xml.onload = function(data){ var items1 = data.items; var g = "\n"; for(var i = 0; i < Math.min(items1.length, 20); i++){ // } document.getElementById("p1").innerHTML = g; } </script> //RSS取得2箇所目 <div id="p2">roading2</div><script> window.onload = function(){ var u = document.getElementsByTagName("head")[0].appendChild(document.createElement("script")); u.type = "text/javascript"; u.charset = "utf-8"; u.src = "http://***"; } var xml = {}; xml.onload = function(data){ var items2 = data.Result; var h = "\n"; for(var i = 0; i < Math.min(items2.length, 20); i++){ // } document.getElementById("p2").innerHTML = h; } </script>

  • アメブロのメッセージボードを全ページに表示する方法

    アメブロに登録フォームをつくりたいと考えています。 その際、メッセージボードに登録フォームをつくり、それをTOPページ だけでなく全ページに表示できるようにしたいのですが、どうやっても できません。 このキーワードで検索して検索にひっかかったサイトを全て参考に してやってみたのですが ダメでした。 例えば、以下をそのままフリーブラグインに貼り付けましたが ダメでした。 <script language="javascript"><!-- function myT() { var myTm ='<p>dfasfdsafdsafcsa</p>' //http://ameblo.jp/exlink/ var myObj = document.getElementById('main'); myObj.innerHTML = ( '<div id="tme">'+ myTm + '</div>') + myObj.innerHTML;} window.onload = function(){myT();} // --></script> 何が問題なのかわからず困っています。 どうか助けてもらえないでしょうか? お願いします。

  • IE7でのwindow.close後のwindow.openについて

    javascriptで、ボタンクリックでウィンドウを開くときに、同じ名前のウィンドウが既に開いていたら一回閉じで、開き直すというロジックを書いてます。 これはIE6では正常に動いているのですが、IE7になると、ウィンドウが閉じたまま、開き直さないで何も表示されなくなってしまいます。たまに開くときもあるのですが。 ボタンクリック後のコードを載せます。 ちゃんと開く方法はないでしょうか? function openwindow(){ var newWindow = window.open("test.html", "test"); if(newWindow.name == "test") { newWindow.close(); } oneScdWindow=window.open("test.html", "test"); }

  • 特定のページの画像URL一覧表示をしようと思っているのですが、

    特定のページの画像URL一覧表示をしようと思っているのですが、 何が原因なのか解らず困っています。 <html> <head> <script> function load(){ var req = new XMLHttpRequest(); req.open("GET", "http://news.google.co.jp/nwshp?hl=ja&tab=wn", false); req.onreadystatechange = function(){ if(4 == req.readyState){ set_news(req.responseXML); } }; req.send(null); } function set_news(xml){ var container = document.getElementById("news"); container.innerHTML = ""; var items = xml.getElementsByTagName("img"); for(var i = 0; i < items.length; i++){ var a = document.createElement("a"); a.href = items[i].getAttribute("src"); a.innerHTML = items[i].getAttribute("src"); container.appendChild(a); } } </script> </head> <body onLoad="load();"> <div id="news"></div> </body> </html> 上記はgoogleの画像URL一覧を取得しようと思っています。 この場合、何が悪いのでしょうか? ご教示宜しくお願いいたします。

  • window.openについて。

    初歩的な質問で申し訳ありません。 ★<script> function openWin(filename){ newWin = window.open(winname + ".html", "", "width=300, height=200, location=no, menubar=no, toolbar=no,resizable=yes"); } </script> ★<a href="JavaScript:openWin('pr00001')">PR00001</a> ・・・という二つのパーツ(★)があるのですが ここで分からないことがあります。 『function openWin(filename)』の『filename』にpr00001というhtmlファイルを埋め込む・・というのは理解できるのですが最初のパーツにある『newWin = window.open(winname + ".html"・・・』の中の『winname + ".html"』とは何を指しているのでしょうか・・・・。 大変申し訳ありませんがご指導お願いいたします。

  • Window.open でフレームに表示

    JAVAを使い、指定のフレームに新しい画面を表示したいのですが、要領が良く判りません。 以下のように _blank で新しいウィンドウを開くのはできます。どなたか ご指導 お願いします。 <TITLE></TITLE> <SCRIPT language="JavaScript"> function new_window(url) { window.open(url, '_blank'); } </SCRIPT> </HEAD> <BODY onload="new_window('comp-page1.htm');">

    • ベストアンサー
    • Java
  • javascriptを起動した後のウェブページを取得するには

    こんにちは。よろしくお願いいたします。 以下のようなHTMLソースをブラウザで読み込むとhogeと 表示されますが、PHPのfile_get_contentsやPerlのLWPなどを使って ページを取得するとソースそのものが取得されます。PHPやPerlを使って ブラウザから見たソース(以下の例ではhoge)を取得するには どのようにしたらよいのでしょうか? <script type="text/javascript"> window.onload=function (){ document.getElementById("a").innerHTML="hoge"; } </script> <div id="a"></div>

    • ベストアンサー
    • PHP
  • 【javascript】document.getElementByIdは一つしか使えないの?

    以下をhtmlをブラウザで見ると、文字列"aaa"は表示されますが、"bbb"は表示されません。 <html> <head> <SCRIPT LANGUAGE='JavaScript1.2'><!-- function init(){ document.getElementById("a").innerHTML="aaa"; document.getElementById("b").innerHTML="bbb"; } //--></script> </head> <body onload="init()"> <div id="a"></dev> <div id="b"></dev> </body> </html> ブラウザはIE,FFと試しましたが共に同じ結果でした。 FFのエラーコンソールには document.getElementById("b").innerHTML="bbb" is null のエラーメッセージが出てましたが、文法的に何が問題なのでしょうか?

  • 【javascript 文法】値渡し?参照渡し?

    以下実行すると、AAAをクリックしてもBBBをクリックしても「BBB」とアラートされます。 <html> <head> <script type="text/javascript" src="prototype.js"></script> </head> <body> <script type="text/javascript"><!-- var gDown= false; var div = document.createElement('div'); div.id = 'AAA'; div.innerHTML = 'AAA'; document.body.appendChild(div); Event.observe(div, 'mousedown',function(){ gDown = div; }); var div = document.createElement('div'); div.id = 'BBB'; div.innerHTML = 'BBB'; document.body.appendChild(div); Event.observe(div, 'mousedown',function(){ gDown = div; }); Event.observe(document, 'mouseup',function(){ alert(gDown.id); gDown=false; }); //--></script> </body> </html> javascriptって値渡しだと思っていたので、期待した動作と異なります。参照渡しだと考えると納得できるのですが、javascriptって 参照渡し?それとも値渡し? と混乱しています。 この辺のところを、教えてください。お願いいたします。

  • RSSで取得したURLに文字列を追加と配置?

    現在googleのAPIを使いRSSからURLと画像を取得しています。 それで質問なんですが、その取得した(それぞれの)URL末尾に指定した同一の英数字を付加と、 表示する画像のレイアウト(現在は縦一列表示)を4×4とかにしたいとですがうまく出来ません>< 複数のURLだと、どの段階で??どう振り当てて組み込んだら良いのか?? レイアウトもCSSで試みましたが一括で処理されるので途中で区切っての配置が出来ず;; 複数の画像だとどうやって振り当てていくのかが判りません>< 初心者で申し訳ありませんがよろしく願いします。<m(__)m> <script type="text/javascript" src="googleのapiキー"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("RSSのURL");   feed.setNumEntries(16); feed.load(function(result) { if (!result.error)   { var container = document.getElementById("feed"); for (var i = 0; i < result.feed.entries.length; i++) {var entry = result.feed.entries[i] ; var gazo = entry.content.match("<img.*jpg.*?>") if(gazo != null){container.innerHTML += "<p><a href='" + entry.link + "'>" + gazo +"</a></p>" } var div = document.createElement("div"); container.appendChild(div); } } }); } google.setOnLoadCallback(initialize); </script> <body onload="OnLoad()"> <div id="feed" ></div>

専門家に質問してみよう