Z twoich komentarzach wydaje dzwonisz
hex2a('000000000000000000000000000000314d464737');
i alarmowania wynik.
Twój problem polega na tym, że budujesz ciąg zaczynający się od 0x00. Ten kod jest zwykle używany jako terminator ciągu dla łańcucha zakończonego znakiem NUL.
Usuń 00
przy starcie:
hex2a('314d464737');
Można naprawić funkcję tak, aby pominąć te „charakter” zerowej:
function hex2a(hex) {
var str = '';
for (var i = 0; i < hex.length; i += 2) {
var v = parseInt(hex.substr(i, 2), 16);
if (v) str += String.fromCharCode(v);
}
return str;
}
pamiętać, że ciąg pełen 0x00 nadal może być używany w innych kontekstach, ale Chrome nie może tego ostrzec. Nie powinieneś używać tego rodzaju ciągów.
Wydaje się, że mogę pracować dla Chromium: http://jsfiddle.net/fDzqu/ –
Czy możesz wyjaśnić "nie działa"? Co się dzieje, gdy go wypróbujesz i jak to się różni od tego, czego oczekujesz? Czy otrzymujesz komunikat o błędzie? Działa dobrze w Chrome, gdy go wypróbuję. http://jsfiddle.net/Guffa/uT2q5/ – Guffa
Podaj przykładowe dane wejściowe i wyjściowe. Co to jest w wersji chrome vs firefix? – loganfsmyth