2013-07-21 3 views
1

Сказать, что я новичок в javascript - оскорбление новичку. Даже мои ограниченные знания HTML являются самоучками. Вот моя проблема: Я пытаюсь массировать СРК в простом IFRAME, например, так:iframe src для массажа javascript

<html> 
<head> 
<script type="text/javascript"> 
function embedKey() { 
var url = window.location.href; 
var symbol = url.split('?')[1]; 
if(symbol=="INNO"){ 
    uniqueKey = "&resid=27A14C5DE396792C%21235&authkey=ANDfOBKrOKskLqg" 
    return "https://skydrive.live.com/embed?cid=27A14C5DE396792C" + uniqueKey +"&em=2&wdAllowInteractivity=False&ActiveCell='Sheet1'!B3&wdHideGridlines=True&wdHideHeaders=True" 
} 
else { 
    alert(url); 
    return false; 
} 
} 
</script> 
</head> 
<body> 

<iframe width="402" height="346" frameborder="0" scrolling="no" src=javascript:embedKey();></iframe> 

</body> 
</html> 

Я буду добавлять гораздо больше условий/символы/возврат строки в функцию embedKey(). Прямо сейчас, я пытаюсь заставить его работать с одним.

+0

Означает ли это вызов функции 'embedKey()'? Что возвращает функция? – David

+0

Это приводит к пустой коробке iframe прямо сейчас. когда я тестировал результат возврата функции, вставив ALERT() в конец функции, возвращаемое значение кажется правильным. Кажется, я просто не могу заставить его применять в iframe. Другими словами, функция работает правильно. – user2604849

+0

Понимая точку предыдущего вопроса, она вообще не вызывает функцию embedKey(). – user2604849

ответ

0

Я не думаю, что JavaScript выполняется из атрибута src. Что-то вроде атрибута href на элементе a (где часто можно увидеть встроенный JavaScript) есть хотя бы событие щелчка, на которое нужно ответить, но не в этом случае.

Вместо того чтобы пытаться вызвать функцию inline из этого элемента, вызовите его из блока сценария после загрузки элемента. Что-то вроде этого:

<iframe width="402" height="346" frameborder="0" scrolling="no" id="someIframe"></iframe> 

<script type="text/javascript"> 
    document.getElementById('someIframe').src = embedKey(); 
</script> 
+0

Это трюк Дэвида, спасибо. Кажется, глупо. Это должно было сработать. Было бы более элегантно использовать его встроенный. – user2604849

+0

@ user2604849: Не совсем. Встроенный JavaScript очень сильно осуждается как неэлегантное решение. В идеале JavaScript должен быть полностью отделен от HTML. Оба они служат совсем другим целям и относятся к совершенно другим местам. HTML должен представлять содержимое, а JavaScript загружаться отдельно для работы над этим контентом. По мере роста любой кодовой базы сохранение этих проблем приводит к гораздо более чистым и простым в обслуживании кодам. – David

Смежные вопросы