我正在使用URL缩短脚本Yourls。在得到你们的帮助后,工作进展顺利。谢谢你。 按下每个按钮以缩短URL,弹出一个弹出窗口,显示该页面的短URL。这种简单的方法适用于Firefox,但我无法在Internet Explorer的Popup中选择文本/缩短URL。 有关如何在弹出窗口中显示可选文本的任何建议吗?
这是页面的代码:
<?php
// Start YOURLS engine
require_once( dirname(__FILE__).'/includes/load-yourls.php' );
function selfURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; } function strleft($s1, $s2) { return substr($s1, 0, strpos($s1, $s2)); }
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="container">
<?php
// Part to be executed if FORM has been submitted
if ( isset($_REQUEST['url']) ) {
$url = yourls_sanitize_url( $_REQUEST['url'] );
$return = yourls_add_new_link( $url );
$shorturl = isset( $return['shorturl'] ) ? $return['shorturl'] : '';
echo <<<RESULT
"<script type='text/javascript'>alert('$shorturl');</script>"
RESULT;
// Part to be executed when no form has been submitted
} else {
$site = YOURLS_SITE;
$var = selfURL();
echo <<<HTML
<form method="post" action="">
<p><input type="hidden" name="url" value="$var" /></p>
<p><input type="submit" value="Shorten" /></p>
</form>
HTML;
}
?>
</div>
</body>
</html>
我想编辑其中的代码
"<script type='text/javascript'>alert('$shorturl');</script>"
如何选择要复制的文字?
任何人都可以告诉我为什么当我们按下按钮时页面http://taimoorsultan.com/y/会重定向到另一个页面?是否可以在不进入下一页的同一页面上显示弹出窗口?我已经粘贴了上面的完整代码。谢谢!
这是当前代码::
<?php
// Start YOURLS engine
require_once( dirname(__FILE__).'/includes/load-yourls.php' );
function selfURL() { $s = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : ""; $protocol = strleft(strtolower($_SERVER["SERVER_PROTOCOL"]), "/").$s; $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]); return $protocol."://".$_SERVER['SERVER_NAME'].$port.$_SERVER['REQUEST_URI']; } function strleft($s1, $s2) { return substr($s1, 0, strpos($s1, $s2)); }
?>
<!DOCTYPE html>
<html>
<head>
<!--Testing-->
<?php if(isset($_REQUEST['url']): // <-- only include jQuery if url set ?>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script>
$(function() {
$( "#dialog-modal" ).dialog({
height: 140,
modal: true
});
});
</script>
<?php endif; ?>
<!--Testing-->
</head>
<body>
<div id="container">
<?php
// Part to be executed if FORM has been submitted
if ( isset($_REQUEST['url']) ) {
$url = yourls_sanitize_url( $_REQUEST['url'] );
$return = yourls_add_new_link( $url );
$shorturl = isset( $return['shorturl'] ) ? $return['shorturl'] : '';
echo <<<RESULT
RESULT;
// Part to be executed when no form has been submitted
} else {
$site = YOURLS_SITE;
$var = selfURL();
echo <<<HTML
<form method="post" action="">
<p><input type="hidden" name="url" value="$var" /></p>
<p><input type="submit" value="Shorten" /></p>
</form>
HTML;
}
?>
</div>
<?php if(isset($_REQUEST['url']): // <-- only include the div if url set ?>
<div id="dialog-modal" title="Basic modal dialog">
<p><?php echo htmlspecialchars($shorturl); ?></p>
</div>
<?php endif; ?>
</body>
</html>
答案 0 :(得分:0)
无法在Internet Explorer中更改文本的选择能力。 alert()
是显示消息的基本方式,除了消息之外没有可配置的选项。
如果您想要更多控制权,则必须在页面上显示消息,或创建自己的对话框或使用jQuery UI Dialog之类的内容。
例如在页面上改为:
echo '<p>' . htmlspecialchars($shorturl) . '</p>';
或<input>
:
echo '<input type="text" value="' . htmlspecialchars($shorturl) . '" />';
要在页面中添加jQuery对话框,您的<head>
部分需要看起来像(使用jQuery CDN):
<head>
<?php if(isset($_REQUEST['url'])): // <-- only include jQuery if url set ?>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<script>
$(function() {
$( "#dialog-modal" ).dialog({
height: 140,
modal: true
});
});
</script>
<?php endif; ?>
</head>
在div
元素中添加将成为对话框的<body>
:
<?php if(isset($_REQUEST['url'])): // <-- only include the div if url set ?>
<div id="dialog-modal" title="Basic modal dialog">
<p><?php echo htmlspecialchars($shorturl); ?></p>
</div>
<?php endif; ?>
答案 1 :(得分:0)
这是从浏览器到浏览器的不同行为。您无法使用alert
执行此操作。而是使用自定义对话框窗口。您可以使用jQuery UI Dialog plugin或Twitter Bootstrap Modal plugin。