2017-04-04 1 views
1

내 페이지의 텍스트를 다른 텍스트와 링크로 바꾸는 스크립트를 얻으려고합니다. 코드가 없으면 페이지가 잘 작동하고 카트에 추가, 제품 번호 (mouseover 명령으로 구동되는)를 조회하는 등의 작업을 수행 할 수 있습니다. 코드가 올바르게 작동하고 텍스트가 링크로 대체되며, 하지만 코드를 삽입하면 페이지가 더 이상 사용자 입력 (예 : 제품 번호 조회) 다음의 코드를 실행하지 않습니다.내 페이지의 코드가 실행중인 페이지의 코드를 중지합니다.

내 페이지가 깨지는 이유는 무엇입니까? 내가 원래 document.onload을 사용했다

window.addEventListener ? 
window.addEventListener("load",Name,false) : 
window.attachEvent && window.attachEvent("onload",Name); 
function Name(){ 
    if (document.getElementsByTagName('body')[0].innerText.indexOf("Text") > 
-1) { 
     var Var1 = document.getElementsByTagName('body')[0].innerHTML; 
    var Var2 = Var1.replace(/Text/gi,"<a href = 
\"https://www.example.com\">NewText;</a>"); 
    document.getElementsByTagName('body')[0].innerHTML = Var2; 

} 

} 

, 나는 창로드를 시도했습니다, 그리고 여러 가지 다른 이벤트 핸들러는 모두 또한 페이지를 끊었다. apploading onload가 올바른 방법이며, 여기에있는 코드에이 onload를 통합했지만,이 단계들 중 아무 것도 문제를 해결하지 못했다고 읽었습니다.

+0

'function() {'이것은 구문 오류이므로이 함수에 이름을 지정해야합니다. 'function funcNameHere() {' – Titus

+0

Titus에게 감사드립니다. 나는 원래 코드에서 모든 것을 포럼에 일반적인 것으로 만들 때 입력하는 것을 잊어 버렸습니다. 내 글을 수정했지만 여전히 문제가 있습니다. – TomM0419

+0

여기에 코드를 입력하면 마크 바로 나오는 몇 가지 문제가 표시됩니다. http://jshint.com/ – Yoda

답변

0

그래서 body의 innerHTML을 바꾸면 내 페이지 (알 수없는 이유로 ... 이것은 스퀘어 공간 사이트 임)가로드 후 코드를 실행하지 못하게합니다. 따라서 위의 코드는 (몇 가지 구문 문제에도 불구하고) 작동했지만 페이지가 파기되었습니다.

페이지별로 클래스별로 더 구체적인 요소를 타겟팅하여이를 수정했습니다. 이는 내 요소가 포함 된 올바른 요소를 찾기 위해 확인하고 확인했습니다 (다시 말해서 사각형 영역을 해독하기 어렵습니다). 그러나 모든 것이 이제는 정상적으로 작동하고 있습니다.

근무 코드 :

window.addEventListener ? 
window.addEventListener("load",FuncName,false) : 
window.attachEvent && window.attachEvent("onload",FuncName); 
function FuncName(){ 
    if (document.getElementsByTagName('body')[0].innerHTML.indexOf("word") > -1) 
{ 
     var Var1 = document.getElementsByClassName('ClassName');  
     for (var i = 0; i < Var1.length; i++){ 
    var Var2 = document.getElementsByClassName('ClassName')[i].innerHTML; 
    var Var3 = Var2.replace(/word/gi,"<a href = 
\"http://www.example.com\">NewWord</a>"); 
    document.getElementsByClassName('ClassName')[i].innerHTML = 
Var3; 

나는 다른 클래스에서 찾고 있어요 단어의 여러 인스턴스를 충당하기 위해 루프를 추가했다했지만, 거기 당신은 간다. 희망이 사람이 비슷한 문제에 붙어 도움이됩니다.

관련 문제