2014-12-29 11 views
1

프로필 페이지의 맨 아래로 스크롤하면 (예 : 타임 라인이 아니라 사용자의 개인 페이지), 새로운 트윗이 자동으로로드됩니다. 나는 새로운 짹짹이로드 될 때마다 함수를 실행하기 위해 UserScript를 작성하고있다.jQuery를 사용하여 새로운 트윗이로드 될 때를 감지합니까?

하지만이 새로운 트윗이로드 된 이벤트를 감지하는 방법을 찾을 수 없습니다. AJAX 요청을 가정합니다. 그래서 아래 두 가지 기능을 시도했지만 아무 소용이 없습니다.

$(document).ajaxComplete(function() { 
    alert("Complete! New tweets loaded!"); 
}); 

$(document).ajaxSuccess(function() { 
    alert("Success! New tweets loaded!"); 
}); 

여기까지가 있습니다. 이것은 페이지가 처음로드 될 때 작동합니다. 그러나 아래로 스크롤 한 후에로드 된 트윗에는 영향을 미치지 않습니다.

// ==UserScript== 

// @name   CoolScript 
// @include   https://twitter.com/IJNanayakkara 
// @include   https://twitter.com/IJNanayakkara/status/* 
// @require   http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js 
// @require   https://gist.github.com/raw/2625891/waitForKeyElements.js 
// @version   1.0 
// @license   GPL v3 or any later version (http://www.gnu.org/copyleft/gpl.html) 
// @grant   GM_addStyle 

// ==/UserScript== 

$.each($('p.js-tweet-text'), function() { 
    $(this).prepend("Brought to you by "); 
}); 

jQuery에서 새 트윗을로드하는 것을 어떻게 감지 할 수 있습니까?


편집 : 나는 또 다른 문제를 발견했습니다. 페이지로 이동할 때 스크립트가 실행되지 않습니다. 실제로 페이지를 새로 고쳐야합니다. 수색을하고 this answer을 찾았습니다. 그 .js 파일을 스크립트로 가져 왔지만 실제로 기다려야하는 요소를 모르겠습니다.

수동 새로 고침없이 스크립트를 실행하려면 어떻게해야합니까? 이 같은

답변

3

경우, 코드 : 간단한

waitForKeyElements ("p.js-tweet-text", prependToTweet); 

function prependToTweet (jNode) { 
    jNode.prepend("Brought to you by "); 
} 

: 페이지의 정적 비트에

$.each($('p.js-tweet-text'), function() { 
    $(this).prepend("Brought to you by "); 
}); 

작품, 또는 명령 콘솔에서, 다음이 waitForKeyElements 코드로 변환 : 선택기는 동일하게 유지되며 $(this)jNode으로 바뀌는 것을 제외하고는 .each() 코드 포트를 직접 처리합니다.


waitForKeyElements 자동 AJAXed 요소를 처리 (스크롤 다운과 리프레시 없이도 작동).

+0

고마워요, 브록. 그것은 작동하지만 새로운 문제가 있습니다. 프로필에서 새 페이지로 이동하여 타임 라인에 말하면, 거기에있는 모든 트윗은'@ include '를 사용하여 2 페이지 만 범위를 지정했지만 스크립트의 영향을받습니다. 왜 이런 일이 일어나는 지 아십니까? – Isuru

+0

아니요, 트위터를 사용하지 않습니다. 새로운 문제를 복제하기위한 *** 정확한 *** 레서피로 새로운 질문을 만드십시오. –

+0

오케이. 새로운 [질문] (http://stackoverflow.com/q/27705455/1077789)을 열었습니다. 바라기를 나는 이것에 대해 약간의 빛을 비추는 것을 발견 할 것이다. 어쨌든 고마워 :) – Isuru