2016-08-07 6 views
-1

次のコードをChromeブックマークレットとして保存して実行しようとしています。Uncaught TypeError:ブックマークレットでJavaScriptコードを実行しているときにnullの 'innerHTML'プロパティを読み取れません

javascript:(function(){var myslidetotal=document.evaluate('//*[@id="total-slides"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.innerHTML; 
var myslideurl=document.evaluate('//*[@id="container"]/img', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.src; 
myslideurl=myslideurl.substring(0,myslideurl.indexOf("/images/")+8); 
for(var ii=0;ii<myslidetotal;ii++){var myslideuniqurl=myslideurl+ii+'.jpeg?dpr=1&fit=clip&w=768';window.open(myslideuniqurl); } 
})(); 

しかし、それは間違いです。 VM1747:1未知の型エラー:nullの 'innerHTML'プロパティを読み取れません

しかし、私はコンソールで同じコードを実行しようとします。それは完全に動作します。

なぜこのコードは実行中に異常であり、これを修正するのですか?

答えて

0

javascript:プロトコルを使用してURL上のDOMを操作するJavaScriptを実行しないと、Chromeの機能が向上するようになりました。したがって、この実装は失敗します。 :)セキュリティ機能です。

詳細情報:Same Origin Policy

But it works in Console...

クロームデベロッパーコンソール(または現在のF12開発者ツールのいずれか)を使用して

、1もあなたのクッキー、セッション情報、および資格情報を取得することができます。コンソールにはフルパワーがあります。 :)簡単に言えば、JavaScriptコンソールは、WebサイトのJavaScriptの管理アカウントに似ています。

Any Work Arounds?

しかし、一つは、拡張またはUserScriptを作成して、Google ChromeのためTamperMonkeyを使用してそれを実行することができます。 Firefoxの拡張子はGreaseMonkeyです。

+0

コンソールに入れても同じコードが実行されます。なぜクロムはそこに安全を置かないのですか? –

+0

@ChahitKumarコンソールを使って、私はあなたのクッキーと資格情報を取得することもできます。コンソールには完全なパワーバディがあります。 ':)'簡単な言い方をすれば、JavaScriptコンソールはWebサイトのJavaScriptの管理者アカウントと似ています。 –

+0

ブックマークレットでコードを取得するための回避策はありますか? –

関連する問題