2013-10-16 6 views
1

(62.0.54.118에 죄송하지만 SO 허용하지 않습니다 하이퍼 링크) :AJAX 기반 페이지에서 <input>의 이름 필드를 변경하는 방법은 무엇입니까? 이 대상 페이지에 대한

http://62.0.54.118/search?&q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0 

, 나는 userscript에 디폴트로 <input>의 이름 필드를 변경하고 싶습니다.

입력은 다음과 같습니다이다

<input class="gsfi" id="lst-ib" name="&q" maxlength="2048" value="42"...> 


, 나는 입력의 name 분야별로 &qq을 변경하려면 :

<input class="gsfi" id="lst-ib" name="q" maxlength="2048" value="42"...> 

내가 그것을 변경하려면 태만.

나는 (작동하지 않는), 스크립트를 작성하려고 :

// ==UserScript== 
// @name  Normal Google Input 
// @include http://62.0.54.118/* 
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js 
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @grant GM_addStyle 
// ==/UserScript== 
/*- The @grant directive is needed to work around a design change 
    introduced in GM 1.0. It restores the sandbox. 
*/ 
waitForKeyElements ("input[name*='q']", changeLinkQuery); 

function changeLinkQuery (jNode) { 
    var oldName = jNode.attr ('name'); 
    var newName = oldName.replace (/\q/, "&q"); 

    jNode.attr ('name', newName); 

    return true; 
} 


또한이 페이지는 Ajax 기반의 페이지입니다.

나쁜 스크립트를 수정하거나 다른 것을 작성해주세요. 감사합니다.

업데이트 : 나는부터 내 스크립트의 라인을 변경하여 그 일부를 해결 :

var newName = oldName.replace (/\q/, "&q"); 

var newName = oldName.replace (/q/, "&q"); 

에 다음 내 스크립트가 잘 작동합니다. 그 제안을 해주신 @Gerard Sexton에게 감사드립니다.

waitForKeyElements 콜백이 페이지의 AJAX에 대해 return true;으로 설정된 새로운 버그가 있으며, & 논스톱이 추가됩니다.

내가 그것을 어떻게 해결할 수 등,이 필드가 name="&&&&&&&&&q"로 원인은?

+1

가/Q 당신의 정규식을 변경/ –

+0

덕분에, 그 트릭 – reemar

+0

을 내가 그것을했다하지만 난 여전히 스크립트 버그가 있습니다 는'true를 반환을,'아약스는'및'에 추가 할 수 있도록하기위한 이 필드가'name = "&&&&&&&&&& q가되도록하지 마십시오. – reemar

답변

1

입력 이름 인 경우 단지 q, 그 자체로, 다음 단지 waitForKeyElements 전화로 변경 : 그래서 그것은 보이는 것을

waitForKeyElements ("input[name='q']", changeLinkQuery); 

정확히q, 어디 문자열이 아닌 Q. 그 정확히<input>의 이름이 아닌 경우


, 아래에 의견을.

+0

감사합니다. 트릭을 변경하십시오. – reemar