페이지에 플래시 객체가 있는지 감지해야합니다. 브라우저 플래시 지원을 의미하지 않습니다. 비슷한 것을 분류 했습니까?HTML 코드의 플래시 객체 감지
0
A
답변
0
내 접근 방식은 사진 및 비디오와 같은 다른 파일 과 플래시 개체를 파일 확장자로 구분하는 것입니다. 그것은 생략 될 수없는 유일한 것입니다. 아래에서 몇 가지 사례를 발견 할 수 있습니다.
function getFileExtension(filename) {
//Since you only looking for swf.
return filename.substr(filename.length - 3).toUpperCase();
//return filename.split('.').pop().toUpperCase();
}
function isSwfFile(filename) {
if (getFileExtension(filename) == "SWF") {
return true;
}
return false;
}
function containsSWFObjects() {
//Try to get all OBJECT tags
var objects = document.getElementsByTagName('object');
var i ,j ;
for (i=0; i < objects.length; i++) {
//Check for <object width="400" height="400" data="helloworld.swf"></object>
var data = objects[i].getAttribute("data");
if (data) {
if (isSwfFile(data)) {
console.log(data);
return true;
}
}
//Check for <param name="movie" value="file.swf"/>
//and <param name="SRC" value="bookmark.swf">
var param = objects[i].getElementsByTagName('param');
for (j=0; j < param.lenght; j++) {
var name = param[j].getAttribute("name").toUpperCase();
if (name) {
if (name == "MOVIE" || name == "SRC") {
if (isSwfFile(param[j].getAttribute("value"))) {
console.log(param[j].getAttribute("value"));
return true;
}
}
}
}
}
//Check for EMBED tag
var embed = document.getElementsByTagName('embed');
for (i=0; i < len; i++) {
//Check for <embed src="file.swf">
var src = embed[i].getAttribute('src');
if (src) {
if (isSwfFile(src)) {
console.log(src);
return true;
}
}
}
return false;
}
if (containsSWFObjects()) {
console.log("Contain SWFs");
} else {
console.log("Doesn't contain SWFs");
}
+0
'jQuery' 지식을 가진 사람이 코드를 축소 할 수 있기를 바랍니다. –
1
modern browsers에 대한 giannis christofakis' answer의 짧은 버전 (IE9 +에서 작동한다) :
function containsSWFObjects() {
var s,
selectors = [
'object param[name="movie"][value*=".swf"]',
'object param[name="src"][value*=".swf"]',
'embed[src*=".swf"]',
'object[data*=".swf"]'
];
while (s = selectors.pop()) {
if (document.querySelectorAll(s).length) {
return true;
}
}
return false;
}
대신 약간 느려질 수 있습니다있는 document.querySelectorAll의 jQuery를 사용할 수 있지만, 아마도 모든 브라우저에서 작동 .
관련 문제
- 1. 능동태 코드의 피크 감지
- 2. 플래시 대역폭 감지
- 3. SWFObject로 플래시 감지
- 4. 플래시 테스트 플레이어 감지
- 5. 플래시 - 기울이기 감지 iOS
- 6. 플래시/플래시 빌더 그래픽 객체
- 7. 플래시 접근성, 스크린 리더 감지
- 8. HTML 코드의 내용이 들어있는 플래시 파일에 텍스트 설정
- 9. jQuery를 통한 플래시 클릭 감지
- 10. 플래시 충돌 감지 (플랫폼 게임)
- 11. FireFox 확장자의 플래시 객체
- 12. 지연로드 플래시 객체
- 13. 플래시 : 포인트에 객체 생성
- 14. 객체 풀 및 플래시
- 15. 플래시 공유 객체 리더
- 16. 자바 스크립트를 통한 플래시 플래시 버튼 객체
- 17. 자바 스크립트 객체 속성 감지
- 18. 이미지 객체 감지 질문
- 19. 자바 스크립트 객체 감지
- 20. 감지 객체 참조 중복
- 21. 웹캠에서 객체 감지 이미지
- 22. Android OpenCV 객체 감지
- 23. 원형 객체 감지
- 24. 이미지의 객체 감지
- 25. OpenCV 객체 감지 자습서
- 26. jQuery 객체 감지
- 27. 충돌 감지 : 둥근 객체
- 28. CQ 5.6.1에서 플래시 객체 만들기
- 29. Actionscript 3.0에서 스프라이트 충돌 감지 플래시
- 30. 플래시 확장형 배너 - 마우스 이탈 감지
아마도 'OBJECT' 태그에 대한 페이지 내에서 검색 할 수 있습니다. –
이 맞습니다! swf, object, embed, iframe을 검색합니다.하지만 플래시가 iframe과 같은 다른 것들을 나타낼 수도 있다는 보장은 무엇입니까? 그들은 주석을 달 수도 있습니다. 나는이 일을하기위한 js 방법이 있기를 바랍니다. 스크립트의 경우 document.script가 있습니다. – narek