2017-07-02 3 views
0

フレームの名前を単純に編集するコードを持っています。通常のページでは、 https://www.google.com/recaptcha/api2/demo?invisible=true またはrecaptchaを持つ任意の1ページです。それはフレームの内側枠なのでコードは、フレームの名前を変更しない http://multytabrailblocks.tk/iframe name with imacro js

が、このサイトではreCAPTCHAの持つ3つのフレームを持っています。 私は私の考えは以下の通りです

FRAME F=2 
URL GOTO=javascript:((function(){var%20a=window.content.document.getElementsByTagName('iframe');var%20k='';for(var%20x=0;x<a.length;x++)if(a[x].src.includes('https://www.google.com/recaptcha/api2/bframe')){a[x].setAttribute("name","newname")}}))() 
FRAME NAME="newname" 
'frame name still not "newname" 
+0

私は、この問題をiim-macroから 'URL GOTO = javascript:{}'を使って解決することはできません。しかし、別のフレームの中でフレーム名を変更することができました。 Firefox用Javascript Scripting Interface](http://wiki.imacros.net/Firefox#Javascript_Scripting_Interface)を参照してください。 – Shugar

+0

@ Shugarこのオプションは私の設定でチェックされました。あなたが成功したコードを教えてください。 –

+0

まあ、あなたの設定で_optionsを意味するわけではありません。ちょうどiim-macrosの代わりにjs-scriptsについて話しました。 – Shugar

答えて

0

それを修正するためにヘルプをしてください必要があります。

iimPlayCode("URL GOTO=https://www.yahoo.com/"); 
// there's no "newname" yet 
alert(iimPlayCode("FRAME name=newname")); 

for (i = 0; i < window.frames.length; i++) { 
    try { 
     window.frames[i].document.getElementsByTagName("iframe")[0].setAttribute("name","newname"); 
    } catch(e) { 
    } 
} 

// now it should be alright 
iimPlayCode("FRAME name=newname" + "\n" + "TAG POS=1 TYPE=* ATTR=* EXTRACT=HTM"); 
alert(iimGetExtract()); 

はv.8.9.7「Firefox用imacrosの」の下でそれを試してみて、あなたの問題のために、このスクリプトを調整します。
私はあなたがJavaScriptの基礎を知っていると仮定します。