Я использую расширение javascript (AKA window.external ) в IE8 (может быть и в любой версии IE) для предоставления определенных функций.
Я пытаюсь вызвать функцию apply , которая (предполагается, согласно здесь ) изначально встроена в каждую функцию JS, в window.external функция объекта, но браузер продолжает выдавать исключение, что apply функция не существует для этой функции.
Например, этот код работает:
function onDataReceived(url, success, status, data, errorMessage) {
alert(onDataReceived);
}
function innerTest() {
alert(arguments[0] + ", " + arguments[1]);
}
function outerTest() {
innerTest.apply(null, arguments);
}
outerTest("hello", "world");
// alerts "hello, world"
Но этот код выдает исключение:
function outerTest() {
window.external.innerTest.apply(null, arguments); // <-- exception
}
outerTest("hello", "world");
Суть в том, что мне нужно передать неизвестное количество аргументов внешней функции, и пока я зашел в тупик ...
Есть идеи?
EDIT:
Я принял ответ Майка Самуэля, поскольку (насколько я понимаю) функция apply
не существует в объекте window.external
, потому что это не нативный объект javascript.
То, что Майк предложил как «наихудший случай», - это то, чем я в данный момент занимаюсь.
спасибо