Запуск javascript с помощью вызова document.write ВНУТРИ DIV, созданного jQuery. Как? - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь заставить основанные на javascript "мировые часы" запускаться во всплывающем элементе div, который показан с помощью jQuery. Это прекрасно работает, когда я смотрю на это в Dreamweaver Live View. Но когда я загружаю его на свой сервер, Javascript showClock (clockobj), который содержит команду document.write (...), выполняется немедленно и переписывает весь экран вместе с картой. Итак, я взял вызов showClock (clockobj) из javascript worldclock.html и поместил его в обработчик jQuery, который открывает div. Карта появляется с щелчком. Но это не в div. Он занимает весь экран.

Как мне заставить его отображать ВНУТРИ div, как и все остальные кнопки на странице? (Советы, конвертер, добавление, редактирование, копирование и т. Д.)

Вот ссылка, если вы хотите увидеть, что я делаю:

http://www.bizzocall.com/cp-ManagePhone.php

Вот JS:

<script src="http://www.clocklink.com/embed.js"></script><script type="text/javascript" language="JavaScript">
clockobj=new Object;clockobj.clockfile="world001-blue.swf";
clockobj.TimeZone="PST";
clockobj.width=480;
clockobj.height=250;
clockobj.wmode="transparent";

</script>

Вот jQuery:

<script type="text/javascript">
        $(function(){
            // Dialog box           
            $('#worldclock').dialog({
                autoOpen: false,
                width: 540,
                buttons: {
                    "Cancel": function() { 
                        $(this).dialog("close");

                    } 
                }
            });

            // Dialog Link
            $('#worldclockbtn').click(function(){
                $('#worldclock').dialog('open');
                showClock(clockobj);
                return false;
            });
        });
    </script>

HTML:

<div id="worldclock"  class="DialogBox">
<?php require_once('worldclock.html'); ?>
</div>
<div class="tiptxt" id="worldclockbtn" >WORLD CLOCK
        <div class="arrowInCircle"></div>
</div>

1 Ответ

0 голосов
/ 06 октября 2011

Во-первых, избавьтесь от одного из ваших jqueries - у вас есть несколько разных версий
они могут быть причиной этой ошибки:

$ ("# picker"). Farbtastic не является функцией
Исходный файл: http://www.bizzocall.com/cp-ManagePhone.php
Линия: 26

Чтобы обработать document.write, переопределите его

var oldWrite = document.write;
var stringToWrite = ""; // this is polluting the window scope, but is for demo purposes ok
document.write=function(str) {
  stringToWrite+=str
}

и используйте $ ("# someDiv"). Html (stringToWrite)

но, глядя на JS, вы также можете просто заменить

function showBanner(BannerLink){
    document.write(BannerLink);
}

с

function showBanner(BannerLink){
  $("#someDiv").html(BannerLink);
}

обновление: заменить весь внешний скрипт на

function showClock(obj){

//Aded by Takeshi Sugimoto on 2008/05/01 for SSL
var str = '';

if(obj.ssl == '1'){
    str = '<embed src="https://secure.clocklink.com/clocks/';
}
else{
    str = '<embed src="http://www.clocklink.com/clocks/';
}
//--

    str += obj.clockfile;
    str += "?";

    for( prop in obj ) {
        if( 'clockfile' == prop 
            || 'width' == prop
            || 'height' == prop
            || 'wmode' == prop
            || 'type' == prop
        ) continue;

        //Added by takeshi on 2007/01/29 (to display mutibyte chars by using URL encoding)
        if(prop == "Title" || prop == "Message"){
            str += ( prop + "=" + obj[prop] + "&" );
        }
        else{
            str += ( prop + "=" + _escape(obj[prop]) + "&" );
        }
        //--
    }
    str += '" ';
    str += ' width="' + obj.width + '"';
    str += ' height="' + obj.height + '"';
    str += ' wmode="' + obj.wmode + '"';
    str += ' type="application/x-shockwave-flash">';

    return str ;
}

function _escape(str){
    str = str.replace(/ /g, '+');
    str = str.replace(/%/g, '%25');
    str = str.replace(/\?/, '%3F');
    str = str.replace(/&/, '%26');
    return str;
}

и сделать

$ ( '# Worldclock'). HTML (showClock (clockobj)). Диалог .....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...