0

サイトのメイン ページのソースを取得するためにドキュメント オブジェクト プロパティ (document.body.innerHTML) を使用しようとしている Opera 拡張機能を構築しています。ほとんどの場合、正しいページ ソースが提供されますが、特定のサイト (複数のドキュメント レイヤーがあるサイト) では、最上位のドキュメントが返されません。

たとえば、サイト (https://www.pcisecuritystandards.org/) の場合、表示されるメイン ページのソースを取得したいのですが、ページ全体が読み込まれると、ドキュメント プロパティは別のレイヤーのソースを表示します (https ://s7.addthis.com/static/r07/sh29.html#cb=0&ab=-&dh=www.pcisecuritystandards.org&dr=&du=https%3A%2F%2Fwww.pcisecuritystandards.org%2F&dt=Official%20PCI% 20Security%20Standards%20Council%20Site%20-%20Verify%20PCI%20Compliance%2C%20Download%20Data%20Security%20and%20Credit%20Card%20Security%20Standards&inst=1&lng=en&pc=men&pub=&ssl=1&sid=4d2ee1f94278e71b&srd=1&srf=. &srp=0.2&srx=0&ver=250&xck=0&rev=86981&xd=1)

これはおそらく、opera がページ内のドキュメント レイヤーをロードする方法に関係しています。他のブラウザでは問題はありませんでした

Opera のドキュメント オブジェクトを使用して、メイン ページ (https://www.pcisecuritystandards.org/) のソースを取得するにはどうすればよいですか?

4

3 に答える 3

1

にいる可能性があります<iframe>。挿入されたスクリプトは、ページ上の iframe だけでなく、一番上のドキュメントにも挿入されるため、innerHTML. のようなものif (window.self == window.top)

于 2011-01-19T16:07:15.260 に答える
0

Opera の場合、どのドキュメントまたはウィンドウ プロパティを使用しようとしても、最上位のドキュメント オブジェクトへの参照を取得していないことが確認されました。実際、window.top と window.parent を使用してみましたが、window オブジェクトのハンドルを提供しているようには見えず、これらのプロパティは null を返しました。

この「挿入されたスクリプトは、ページ上のすべての iframe と同様にトップ ドキュメントにも挿入されます」に関して、(挿入されたスクリプトに含めた) アラートは iFrame からのみ取得され、最上位のウィンドウからは取得されませんでした。あなたが言ったことは、Google Chrome と Safari でのみ真実であることがわかりました。

于 2011-01-21T07:01:52.167 に答える
0

トンボを使用しようとしましたか? Opera で何が起こっているかを理解するのに役立ちます。現在、私は Opera 11 を使用しており、あなたが言及したページに移動すると. 私はinnerHTMLでいくつかのものを得ました。

"<div style="visibility: hidden; height: 1px; width: 1px; position: absolute; z-index: 100000" id="_atssh"><iframe id="_atssh827" style="height: 1px; width: 1px; position: absolute; z-index: 100000; border-top-color: currentColor; border-left-color: currentColor; border-right-color: currentColor; border-bottom-color: currentColor; border-top-width: 0px; border-left-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-top-style: none; border-left-style: none; border-right-style: none; border-bottom-style: none; left: 0px; top: 0px" src="//s7.addthis.com/static/r07/sh30.html#cb=0&amp;ab=-&amp;dh=www.pcisecuritystandards.org&amp;dr=&amp;du=https%3A%2F%2Fwww.pcisecuritystandards.org%2F&amp;dt=Official%20PCI%20Security%20Standards%20Council%20Site%20-%20Verify%20PCI%20Compliance%2C%20Download%20Data%20Security%20and%20Credit%20Card%20Security%20Standards&amp;inst=1&amp;lng=fr&amp;pc=men&amp;pub=&amp;ssl=1&amp;sid=4d358407b896251f&amp;srd=1&amp;srf=0.02&amp;srp=0.2&amp;srx=0&amp;ver=250&amp;xck=0&amp;rev=88088&amp;xd=1"></iframe></div>
    <a name="top" id="top"></a>
    <div id="container">
      <a name="index" id="index"></a>
[…etc]

<h2>NEWS</h2>

ニュースセクションが表示されるので、実際にホームページに戻ります。一部のマークアップはスクリプトによって挿入されていることに注意してください。使用しているコードを貼り付けていただけますか。

于 2011-01-18T12:22:02.307 に答える