【问题标题】:how to display a .txt file in jquery如何在 jquery 中显示 .txt 文件
【发布时间】:2016-05-11 11:54:18
【问题描述】:

我有一个 textarea 和这个 javascript 代码它应该可以工作,但是有什么问题吗?如果是这样,它是什么?

$('#text').load("http://hokuco.com/test/xe7/user.txt");
<form action="formcode.php" method="POST">
<textarea name='field2' placeholder='Code here' rows ="40" cols="40" id ="text"></textarea>
<br />
<input type="submit" name="submit" value="Save">
</form>

如果好奇,这是我的 php 文件:

<?php
if(isset($_POST['field1']) && isset($_POST['field2'])) {
    $data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
    $ret = file_put_contents('code.txt', $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "$ret bytes written to file";
    }
}
else {
   die('no post data to process');
}
?>

【问题讨论】:

  • 您是否将其绑定到某个事件,或包裹在$(document).ready(function(){}); 语句中?
  • 不,我想这就是我所有的代码............
  • 我希望当html6出来的时候他们会在textarea标签中添加一个href控件

标签: jquery html text textarea


【解决方案1】:

由于浏览器安全限制,大部分Ajax请求都受同源策略的约束;请求无法从不同的域、子域、端口或协议成功检索数据。

我假设 .txt 文件与尝试加载它的 HTML 文件不在同一服务器/域上?如果是,那么您应该使用相对 URL,即:

$('#text').load("xe7/user.txt");

请参考:Loading cross domain endpoint with jQuery AJAX

【讨论】:

    【解决方案2】:

    这行得通吗?

    jQuery

    $(function(){
    
    
      $.ajax({
        url : "http://hokuco.com/test/xe7/user.txt",
        dataType: "text",
        success : function (data) {
          $("#text").html(data);
        }
      });
    
    
    });
    

    HTML

    <div id="text"></div>
    

    【讨论】:

    • jQuery 的 load() 函数不需要数据类型。他的代码没有错,只是他“违反”了同源政策。
    【解决方案3】:

    正如其他用户所说,您违反了同源政策。 如果您使用的是 PHP,则可以将其回显到您的 textarea 中。

    类似的东西:

    <textarea id="text">
        <?php 
            $text = file_get_contents('http://hokuco.com/test/xe7/user.txt');
            echo $text;
        ?>
    </textarea>
    

    【讨论】:

      【解决方案4】:

      如果上面的代码就是全部(正如您在对问题的评论中所述),并且您已经包含了 jQuery,那么仅仅刷新页面不会给您结果。由于您的 HTML 代码位于此 jQuery 调用下方,因此调用该函数时 DOM 尚未准备好。因此,您需要在文档准备好时调用此函数,根据所有与 DOM 元素相关的 jQuery 调用都应以这种方式进行的规则:

      $(document).ready(function(){
          $('#text').load("test/xe7/user.txt");
      });
      

      【讨论】:

        猜你喜欢
        • 2020-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-27
        • 1970-01-01
        • 2023-04-05
        • 1970-01-01
        相关资源
        最近更新 更多