小编YuC*_*YuC的帖子

如何在纯JavaScript中获取div的边距值?

我可以用jQuery获得高度

$(item).outerHeight(true);
Run Code Online (Sandbox Code Playgroud)

但是我如何使用JS?

我可以得到李的高度

document.getElementById(item).offsetHeight
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用margin-top时,我总会得到""

document.getElementById(item).style.marginTop
Run Code Online (Sandbox Code Playgroud)

javascript margin

44
推荐指数
4
解决办法
8万
查看次数

使用javascript window.print()进行Safari打印问题

我在Safari上打印时遇到问题.我的系统是Windows 7,此功能在除Safari之外的所有其他浏览器中都能正常运行.情况如下:

window.onload = function(){
    console.log('before print');
    window.print();
}
Run Code Online (Sandbox Code Playgroud)

它不会输出登录控制台面板,但首先会出现打印页面,在打印页面中选择取消后,将输出日志.

有没有人提出这个问题?任何帮助将不胜感激.

更新

这是我的情况:我们需要打印一个页面,其内容可以由用户通过选中和取消选中复选框进行更改,并且只打印此页面的内容部分,因此我们创建一个仅包含内容的新页面用于印刷.在此页面中,我们需要隐藏用户未选择的不必要内容,因此我们需要在window.print()调用之前执行一些DOM操作.这console.log()只是观察的示例代码.我尝试添加一个<div id='test'>Test HTML</div>测试HTML并添加

var test = document.getElementById('test');
test.style.background = 'yellow';
Run Code Online (Sandbox Code Playgroud)

之前window.print();,它在我的Safari浏览器中显示相同的结果,"测试HTML"在我单击打印面板中的取消按钮之前不会变为黄色,所以这不仅仅是console.log问题.

更新

我在Windows 7上使用Safari 5.1.7(7534.57.2)

javascript printing safari

5
推荐指数
1
解决办法
1万
查看次数

动态加载js时,不能使用微小的mce

我有TinyMCE的,当我把麻烦<script type="text/javascript" src="/scripts/tiny_mce/tiny_mce.js"><head>,并把初始化代码之前<textarea class="tinyMceEditor">,它工作正常.init代码是这样的:

                    tinyMCE.init({
                        mode : "specific_textareas",
                        editor_selector : "tinyMceEditor",
                        plugins : "inlinepopups,advlink",
                        convert_urls : false,
                        theme : "advanced",
                        theme_advanced_buttons1 : "link,unlink",
                        width: "602",
                        height: "175",
                        theme_advanced_statusbar_location : "none"}); 
Run Code Online (Sandbox Code Playgroud)

但是现在,我想推迟加载tiny_mce.js,当用户第一次点击一个按钮时,将加载tiny_mce.js,然后追加<textarea class="tinyMceEditor"><body>,然后使用前面的代码执行init工作,但是这个时间,它不会初始化tinyMCE编辑器,它只显示<textarea class="tinyMceEditor">

谷歌搜索,但没有发现与此有关,任何人都遇到了这个问题?

任何建议将不胜感激.

我查看了chrome web开发人员工具,发现如果我动态加载tinymce.js,其他需要的js,如en.js,editor_template.js,editor_plugin.js等将不会被加载.即使我将这些js文件添加到动态加载中,仍然无法使用tinymce.


感谢您的帮助,我看着萤火虫,我也得到追加载入前tinymce.js <textarea<body>,然后我追加<textarea>,做TinyMCE的init(),我使用LazyLoad(jQuery插件)来动态加载js文件.

这就是我所做的

if(typeof TinyMCE == "undefined"){
    //dynamically load the tinymce.js
    LazyLoad(['tinymce.js'],function(){
        //callback function, called after tinymce is loaded
        $('body').append('<textarea class="TinyMceEditor"/>');
        tinyMCE.init({init settings});
    });
} …
Run Code Online (Sandbox Code Playgroud)

tinymce initialization init dynamic-loading

4
推荐指数
1
解决办法
9719
查看次数