swfobject와 IE8을 사용할 때 flashvars 문자열의 최대 길이가 있습니까?최대 FlashVars 길이는 IE8입니까?
저는 FlashVars를 통해 Facebook 세션 객체를 Flash로 전달하고 FF 및 Chrome에서는 정상적으로 작동합니다. IE에서는 몇 가지 데이터 만 전달되고 임의의 지점에서 문자열이 잘린 것처럼 보입니다. 이로 인해 Flash에서 들어오는 데이터를 잘못 파싱합니다.
세션 개체를 가져옵니다 PHP : 플래시 stage.loaderInfo.parameters.session
가 null 객체의 오류가 발생 액세스를 시도하는 IE에서 실행에 그래서 지금
var flashvars = {
popUpsAllowed:true,
deployPath:"<<PATH>>",
fb_type:"popup",
fb_environment:"iframe",
fb_app_id:"<<APP ID>>",
fb_redirect:"<<REDIRECT URL>>",
session:'<?php echo $session; ?>',
lang:'<?php echo $lang; ?>',
nobreak:null }
하지만 잘 작동 :
function parse_signed_request($signed_request, $secret) {
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$sig = base64_url_decode($encoded_sig);
$data = json_decode(base64_url_decode($payload), true);
return $data;
}
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_', '+/'));
}
if(isset($_REQUEST['signed_request'])) {
$session = json_encode(parse_signed_request($_REQUEST['signed_request'],'<<APP SECRET>>'));
} else {
$session = '';
}
$lang = 'UK';
어셈블을 FlashVars를 FF로.
FlashVars에 과부하가 걸리지 않도록 externalInterface를 통해 세션을 요청해야합니다.
EDIT : 그래서 Session var을 가져 와서 ExternalInterface를 통해 나중에 요청하면 작동하지만 여기에 IE 또는 ActiveX 플러그인이 있는지 여부를 알고 싶습니다. 이 (일부 숫자가 변경)처럼
는 세션 데이터는 같습니다
{"algorithm":"HMAC-SHA256","expires":1304334000,"issued_at":1304327676,"oauth_token":"100076334000000|0.kNHAz0AST_cq0jo7WLWldQ__.0000.0004334000.1-000000000|UIy7h_0NFYByedFUGDkxOntP8Sg","user":{"country":"gb","locale":"en_GB","age":{"min":21}},"user_id":"000000000"}
Edit2가 : * 당신이 IE 개발자 도구에서 코드를 볼 때 그래서 바보, 그것은 수행하고있어 작물 오프로드 , 요소의 내부 html을 텍스트 편집기에 복사하면 전체 내용을 볼 수 있습니다. 그래서 세션 문자열이 손상되지 않은 것 같지만 여전히 플래시에 올바르게 들어 가지 않습니다. loaderInfo.parameters.session
이 있지만 null이고 loaderInfo.parameters.lang
이 정의되지 않았습니다.
이것은 FlashVars를 실제 브라우저 출력은 다음과 같습니다
var flashvars = {
popUpsAllowed:true,
deployPath:"http://www.mydomain.com",
fb_type:"popup",
fb_environment:"iframe",
fb_app_id:"00000000000000000000000000000000",
fb_redirect:"http://apps.facebook.com/myApp/iframe_popup.php",
session:'{"algorithm":"HMAC-SHA256","expires":1304416800,"issued_at":1304412506,"oauth_token":"000176004606000|2.01KBxkU8muE0AeIQSNlXLg__.3000.1304400800.0-500428000|_KXAwxTxzGSmasOu0KlNFHQ0d7A","user":{"country":"gb","locale":"en_GB","age":{"min":21}},"user_id":"000000000"}',
lang:'UK',
nobreak:null}
$ 세션을 이스케이프 처리합니까? –
또 다른 것은 렌더링 된 HTML을보고 무엇이 세션에 할당되는지 봅니다. –
IE 개발 도구를 살펴본 결과 세션 문자열의 일부를 보여 주지만 특정 길이로 멈 춥니 다. dev 도구가 전체 라인을 보여주지 않는 것처럼 보이지만 세션이 lang이어야하고 세션이 null 인 경우 loaderInfo.parameters의 마지막 매개 변수로 표시됩니다. 이는 IE가 라인을 자르고 있음을 나타냅니다. 필자는 Flash에서 콜백을 사용하여 데이터를 설정했기 때문에 이스케이프가 도움이되지 않는다고 생각합니다. 문제없이 IE에서 이스케이프 처리되지 않은 이스케이프 처리를 통과합니다. – shanethehat