Я попробовал все, чтобы найти этот ответ, и сейчас 1:00 утра, и я должен идти спать и сдаваться :( прежде чем моя жена подаст мне наш второй развод! :) 1001
Вкратце, моя проблема в том, что я использую API Google to (localsearch, imagesearch и websearch), чтобы найти различные строки, которые я включил в свой сайт.Они загружаются в динамический DIV, и каждому набору результатов присваивается div с целым числом, связанным с его номером.Например,
for (var i = 0; i < localSearch.results.length; i++) {
// Create HTML elements for search results
var letsseetitle = localSearch.results[i].titleNoFormatting;
letsseestreet = localSearch.results[i].streetAddress;
var letsseecity = localSearch.results[i].city;
var letsseeregion = localSearch.results[i].region;
var letsseecountr = localSearch.results[i].country;
var letsseestaticmapurl = localSearch.results[i].staticMapUrl;
var latresult = localSearch.results[i].lat;
var lng = localSearch.results[i].lng;
dv = document.createElement('div'); // create dynamically div tag
var attrname = "selectionbox" + i;
dv.setAttribute('id',attrname); //give id to it
var goFetchThis = letsseetitle + " " + letsseestreet + " " + letsseeregion + " " + letsseecountr;
dv.style.border="solid";
dv.style.padding="10px";
dv.style.backgroundColor="#80C4FF";
dv.title="Click to review this company.";
dv.innerHTML= letsseetitle + "<BR>" + letsseestreet + "<BR>" + letsseecity + "<BR>" + letsseeregion + "<BR>" + letsseecountr + "<BR>";
//var el = document.getElementById(attrname);
LoopIn = i;
// attach event onmouseclick to the created div tag
if(isIE){
dv.onclick = new Function("SelectThis(attrname, attrname)");
}
else{
dv.setAttribute("onclick", "SelectThis()");
}
document.getElementById("foundresultsdiv").appendChild( dv );
}
Теперь проблема заключается в следующем.И в Chrome, то есть Safari и других, у меня нет проблем с компонентом по нажатию.То есть, когда пользователь нажимает на один из динамически созданных элементов div, мой скрипт удаляет содержимое и загружает его в форму, готовую для отправки пользователем.
Сценарий, который делает это;
function SelectThis(e) {
var targ;
if (!e) var e = window.event;
if (!e) var e = elTags[e].getAttribute("name");
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (!e) var e = window.event;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
theId=targ.id
var TheStuffInside = document.getElementById(theId).innerHTML;
var linebyline = TheStuffInside.split("<br>");
var searchname = document.getElementById('searchname')
searchname.value = linebyline[0];
var stAddress = document.getElementById('stadd')
stAddress.value = linebyline[1];
var suburb = document.getElementById('suburb')
suburb.value = linebyline[2];
var stateLocal = document.getElementById('statelocal')
stateLocal.value = linebyline[3];
var country = document.getElementById('country')
country.value = linebyline[4];
}
Теперь я не могу похвастаться здесь, потому что я вообще не писал этот сценарий, и в основном он работает хорошо.ИСКЛЮЧЕНИЕ в firefox.Когда я нажимаю на один из динамических div в Firefox, НИЧЕГО не происходит вообще.Фактически, элемент возвращает неопределенный результат.Я испробовал кучу вариаций от изменения кода до добавления прослушивателей событий при загрузке, и у меня вообще не было УДАЧИ.
Любой совет здесь будет принята с благодарностью.Кто знает - вы можете даже спасти мой брак! :)
Кстати, ошибка // beat safari технически некорректна, но я ее не написал нормально!:)
Любые вопросы, пожалуйста, дайте мне знать.