Yii2 如何输出标准的 JS? [ 2.0 版本 ]
标题描述的可能不太清楚。
或者 Yii2 解决这个问题不是这个思路。
具体的需求是这样的——
其他站点需要引用 Yii 开发的这个站点的一个页面,这个页面需要输出标准的 js。
在浏览器上访问该页面后,输入代码实例如下——
document.write('<a href="https://test.com/test.php">test string</a>');
其他站点采用下面的方式引用——
<script type="text/javascript" src="https://test.com/counter.php"></script>
最佳答案
-
更 yii 一点的做法是,仿照
yii\web\HtmlResponseFormatter
或yii\web\JsonResponseFormatter
或yii\web\XmlResponseFormatter
,自己写一个JavascriptResponseFormatter
类(这个类唯一的作用 也就是设置Content-Type
),然后就可以这样Yii::$app->response->format = Response::FORMAT_JAVASCRIPT; Yii::$app->response->data = "document.write('<a href=\"https://test.com/test.php\">test string</a>');"; return Yii::$app->response->send();
当然
FORMAT_JAVASCRIPT
这个常量的定义 还需要修改 Response 类,并且加上 到自己写的那个类的映射共 1 条回复
其他 3 个回答
-
简单点的话 直接 echo 就行
讲究点的话,可以这样:// 没有这行的话,下面的设置 content-type 不好使,因为 默认的 format 是 text/html,send 的时候会用默认的 format 把 content-type 覆盖掉 Yii::$app->response->format = Response::FORMAT_RAW; Yii::$app->response->headers->set('Content-Type', 'application/javascript'); Yii::$app->response->data = "document.write('<a href=\"https://test.com/test.php\">test string</a>');"; return Yii::$app->response->send();
肥宝宝天使 北京
注册时间:2019-09-10
最后登录:2020-01-17
在线时长:5小时49分
最后登录:2020-01-17
在线时长:5小时49分
- 粉丝0
- 金钱420
- 威望10
- 积分570