小编Nin*_*les的帖子

更新iframe,历史记录和网址.然后使用后退按钮使其工作

当我点击浏览器上的后退按钮时,我遇到了更新URL的问题(我在Firefox上进行测试).更新iframe的"src"属性后,我用它replaceState来更新历史记录.如果我在此之后点击后退按钮,iframe将返回上一页但URL不会更新以反映这一点.

function updateURLBar(urlInfo) {
    var stateObj = { foo: "bar" };
    document.getElementById("iframeContent").src = urlInfo[1];
    window.history.replaceState(stateObj, "page 2", urlInfo[0]);
}
Run Code Online (Sandbox Code Playgroud)

我是以错误的方式解决这个问题,还是我错过了一些东西.感谢先进的任何帮助!

html javascript iframe browser-history

3
推荐指数
1
解决办法
4801
查看次数

如何直接在Ajax成功结果上从JSON对象加载数据表?

经过长时间的搜索,我找不到解决这个问题的方法,通过Ajax GET加载Datatables的文档已被很好地证明,但是如何在Ajax POST之后直接使用JSON响应呢?

这是我的PHP函数:

function getRelated() {
    var elements = (document.getElementsByClassName('exashare'));
    var query = [];
    for(var i=0;typeof(elements[i])!='undefined';query.push(elements[i++].getAttribute('data-id')));

    query = query.join(',');

    $.ajax({
        type: "POST",
        url: baseUrl+"/requests/get_related.php",
        data: "query="+query+'&_token='+_token, 
        cache: false,

        success: function(html){
            $('#example').DataTable( {
                "processing": true,
                "serverSide": true,
                "ajax": {
                    'url':jQuery.parseJSON(html),
                    "dataSrc": ""
                },
                "columns" : [
                        { "data": "#" },
                        { "data": "id" },
                        { "data": "art" },
                        { "data": "name" },
                        { "data": "title" },
                        { "data": "tag" },
                        { "data": "likes" },
                        { "data": "views" }, …
Run Code Online (Sandbox Code Playgroud)

javascript ajax json datatables

2
推荐指数
1
解决办法
5335
查看次数

如何使用 PROCEDURE 在 MySQL 上运行多个查询?

PROCEDURE在 MySQL 中为像 SQL 那样的多个查询创建 a 的正确方法是什么?

CREATE OR REPLACE PROCEDURE foo
IS
BEGIN
  -- The create sentence goes here. For example:
  -- EXECUTE IMMEDIATE
  -- 'CREATE TABLE bar (...)';

  -- The update sentence goes here
  -- EXECUTE IMMEDIATE
  -- 'UPDATE bar SET ...';

  -- The drop/delete sentence goes here.
  -- EXECUTE IMMEDIATE
  -- 'DROP TABLE bar;'
END;
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures

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

如何正确流式传输M4A文件?

我想流式传输M4A音频文件,但由于某种原因,播放器仅在下载整个文件后才开始播放歌曲。

<!DOCTYPE html>
<html>
<body>

<audio controls>
  <source src="https://php-test-easybreazy.c9users.io/music/1021785690_1171244514_239291028.m4a" type="audio/mpeg">
Your browser does not support the audio element.
</audio>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

在我的Ubuntu服务器中,我使用FFMPEG来编码我的音频文件。

我唯一能想到的是元数据/编码问题。

为什么播放器只有在下载了整个文件音频后才开始播放?

javascript audio streaming ffmpeg html5-audio

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

如何在PHP中使用解码的JSON数据?

使用这个插件我需要绘制带有预渲染数据的音频波形.

我将JSON数据存储在MySQL中 {"sample_rate":44100,"samples_per_pixel":4410,"bits":8,"length":2668,"data":[0.13,0.19,0.15,0.11,0.13,0.13,0.24,0.35 ...]}

所以我尝试过:

PHP

$json = $row['wave'];
$json_array = json_decode($json);
$json_wave = implode(',', $json_array->data);
Run Code Online (Sandbox Code Playgroud)

HTML

<div data-track-wave="'.$json_wave.'" id="play'.$row['id'].'" class="track"></div>
Run Code Online (Sandbox Code Playgroud)

JS

function createWaveform(json) {
    $( "#waveformbottom" ).empty();
    var linGrad = document.createElement('canvas').getContext('2d').createLinearGradient(0,0,0,170);
    linGrad.addColorStop(0, '#ff3b25'); 
    linGrad.addColorStop(0.5, '#ff0018'); 

    var wavesurferbottom = WaveSurfer.create({
        container: document.querySelector('#waveformbottom'),
        waveColor: '#b3b3b3',
        progressColor: linGrad,
        backend: 'MediaElement',
        mediaType:'audio',
        height:'48',
        cursorColor:'#fff',
        cursorWidth:'0',
        normalize:true,
        barWidth:'2'
    });

    //Set peaks ! THE PROBLEM !
    wavesurferbottom.backend.peaks = [json];
    //Draw peaks
    wavesurferbottom.drawBuffer();

    $(window).resize(function(){
       if($(this).width() != width){
            widthbottom = $(this).width();
            wavesurferbottom.drawer.containerWidth = wavesurferbottom.drawer.container.clientWidth;
            wavesurferbottom.drawBuffer(); …
Run Code Online (Sandbox Code Playgroud)

javascript json wavesurfer.js

-2
推荐指数
1
解决办法
133
查看次数