javaScript теряет фокус при добавлении <embed> - PullRequest
3 голосов
/ 16 марта 2011

Мне нужно добавить звуковой сигнал в мой скрипт. Я добавляю каждый раз, когда звук должен быть.

$("#beep").html("<embed src='button-16.wav' hidden='true' autostart='true' loop='false' id='bp' />")

Но когда я добавляю, мой потерянный фокус.

Я попытался снова сфокусировать его следующим образом.

1)

$("#beep").html("<embed src='button-16.wav' hidden='true' autostart='true' loop='false' id='bp' />");
$("#txt").focus();

2)

$("#beep").html("<embed src='button-16.wav' hidden='true' autostart='true' loop='false' id='bp' />");
$("#bp").ready(function(){
    $("#txt").focus(); 
});

Но ни первый, ни второй способ не работают.

HTML-код.

<div id="beep"></div>
<input type="text" id="txt" />

Итак, как сохранить фокус текстового поля после звукового сигнала?

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Я нашел совершенно другой способ решения этой проблемы.Я написал * .swf, который воспроизводит звуковой сигнал, когда JavaScript вызывает его функцию.

Код ActionScript.

package  {
import flash.display.*;
import flash.events.*;
import flash.system.*;
import flash.media.Sound;
import flash.net.URLRequest;
import flash.external.ExternalInterface;

public class Main extends Sprite {
    var s:Sound;
    public function Main() 
    {
        ExternalInterface.addCallback("PlaySound", PlaySound);
        var request:URLRequest = new URLRequest("beep.mp3");
        s = new Sound(request);
    }
    public function PlaySound():void
    {
        s.play();
    }
}
}

Код JavaScript.

$("#txt").keyup(function(event){
    if(event.which==13){
     var obj=thisMovie("Main");
     obj.PlaySound();
    }
});

function thisMovie(movieName) {
var movie;
try
{
    movie = document[movieName];
    movie = (movie == null) ? window[movieName] : movie;        
}
catch (e)
{
    return null;
}
return movie;
}
0 голосов
/ 16 марта 2011

Вы можете попробовать установить интервал, чтобы увидеть, захватывает ли конец wav-файл фокус?Для выполнения .wav может потребоваться больше времени, чем для запуска следующего процесса, который является вашим фокусом ()

...