교차 도메인 인 경우 단순히 src를 동일한 URL로 다시 설정해도 위치 해시가 변경 되더라도 항상 다시로드를 트리거하지는 않습니다.
트위터 버튼 iframe을 수동으로 구성하는 동안이 문제가 발생했습니다 .URL을 업데이트해도 새로 고쳐지지 않습니다.
트위터와 같은 버튼의 형태는 다음과 같습니다.
.../tweet_button.html#&_version=2&count=none&etc=...
Twitter는 URL에 문서 조각을 사용하기 때문에 해시 / 조각을 변경해도 소스가 다시로드되지 않았고 버튼 대상에 새로운 아약스로로드 된 내용이 반영되지 않았습니다.
재로드를 강제하기 위해 쿼리 문자열 매개 변수를 추가 할 수 있습니다 (예 : "?_=" + Math.random()
그러나 특히 트위터의 접근 방식이 캐싱을 활성화하려는 경우이 예에서는 대역폭이 낭비됩니다).
해시 태그로만 변경되는 것을 다시로드하려면 요소를 제거하거나을 변경 src
하고 스레드가 종료 될 때까지 기다렸다가 다시 할당해야합니다. 페이지가 여전히 캐시되어 있으면 네트워크 히트가 필요하지 않지만 프레임 재로드가 트리거됩니다.
var old = iframe.src;
iframe.src = '';
setTimeout( function () {
iframe.src = old;
}, 0);
업데이트 :이 방법을 사용하면 원하지 않는 기록 항목이 생성됩니다. 대신 매번 iframe 요소를 제거하고 다시 생성하면이 back () 버튼이 예상대로 작동합니다. 타이머가없는 것도 좋습니다.